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 ab6761e5..dd3a9ba3 100644 --- a/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java +++ b/common/src/main/java/com/craisinlord/antarchy/config/AntarchySettings.java @@ -53,6 +53,8 @@ public final class AntarchySettings { private static double bigBerthaAttackDamage = 55.0D; private static double bigBerthaReachBonus = 3.0D; private static double bigBerthaAttackSpeed = -3.0D; + private static double attitudeAdjusterBaseDamage = 40.0D; + private static boolean attitudeAdjusterBreaksBlocks = true; private static double krakensGraspAttackDamage = 16.0D; private static double krakensGraspAttackSpeed = -2.9D; private static double krakensGraspThrownDamage = 32.0D; @@ -251,8 +253,8 @@ public final class AntarchySettings { private static double reverieWarningThreatVerticalRange = 5.0D; private static int reverieDuplicationCooldownTicks = 6000; private static final boolean reverieOnlyPlayerDamage = true; - private static final double reveriePreferredFollowMinDistance = 3.0D; - private static final double reveriePreferredFollowMaxDistance = 6.0D; + private static final double reveriePreferredFollowMinDistance = 2.5D; + private static final double reveriePreferredFollowMaxDistance = 2.5D; private static final double reverieCatchUpDistance = 12.0D; private static final double reveriePurpleProtectRadius = 2.7D; private static final int reverieWarningApproachTicks = 8; @@ -690,6 +692,14 @@ public final class AntarchySettings { return bigBerthaAttackSpeed; } + public static double attitudeAdjusterBaseDamage() { + return attitudeAdjusterBaseDamage; + } + + public static boolean attitudeAdjusterBreaksBlocks() { + return attitudeAdjusterBreaksBlocks; + } + public static double bigBerthaBasiliskCooldownSeconds() { return bigBerthaBasiliskCooldownSeconds; } @@ -1232,6 +1242,14 @@ public final class AntarchySettings { bigBerthaAttackSpeed = value; } + public static void setAttitudeAdjusterBaseDamage(double value) { + attitudeAdjusterBaseDamage = value; + } + + public static void setAttitudeAdjusterBreaksBlocks(boolean value) { + attitudeAdjusterBreaksBlocks = value; + } + public static void setBigBerthaBasiliskCooldownSeconds(double value) { bigBerthaBasiliskCooldownSeconds = value; } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/AntarchySoundEvents.java b/common/src/main/java/com/craisinlord/antarchy/content/AntarchySoundEvents.java index 8cabf511..af9c2c0b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/AntarchySoundEvents.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/AntarchySoundEvents.java @@ -132,6 +132,9 @@ public final class AntarchySoundEvents { public static Supplier TORETERROR_JUMP_UP = (Supplier) UNBOUND; public static Supplier TORETERROR_JUMP_LAND = (Supplier) UNBOUND; public static Supplier STINKY_FLY = (Supplier) UNBOUND; + public static Supplier STINK_BUG_FART = (Supplier) UNBOUND; + public static Supplier STINK_BUG_IDLE = (Supplier) UNBOUND; + public static Supplier ROLLY_POLLY_IDLE = (Supplier) UNBOUND; public static Supplier CREEPING_HORROR_GROWL = (Supplier) UNBOUND; public static Supplier CREEPING_HORROR_HURT = (Supplier) UNBOUND; public static Supplier CREEPING_HORROR_BITE = (Supplier) UNBOUND; @@ -140,6 +143,19 @@ public final class AntarchySoundEvents { public static Supplier LURKING_TERROR_BITE = (Supplier) UNBOUND; public static Supplier LURKING_TERROR_FLY_LOOP = (Supplier) UNBOUND; public static Supplier DUCT_TAPE_USE = (Supplier) UNBOUND; + public static Supplier HERCULES_BEETLE_IDLE = (Supplier) UNBOUND; + public static Supplier HERCULES_BEETLE_HURT = (Supplier) UNBOUND; + public static Supplier HERCULES_BEETLE_ATTACK = (Supplier) UNBOUND; + public static Supplier HERCULES_BEETLE_CRY = (Supplier) UNBOUND; + public static Supplier HERCULES_BEETLE_CHARGE_START = (Supplier) UNBOUND; + public static Supplier HERCULES_BEETLE_KNOCKED_DOWN = (Supplier) UNBOUND; + public static Supplier JUMPY_BUG_IDLE = (Supplier) UNBOUND; + public static Supplier SPIT_BUG_IDLE = (Supplier) UNBOUND; + public static Supplier JUMPY_BUG_HURT = (Supplier) UNBOUND; + public static Supplier JUMPY_BUG_JUMP = (Supplier) UNBOUND; + public static Supplier SPIT_BUG_HURT = (Supplier) UNBOUND; + public static Supplier SPIT_BUG_SPIT = (Supplier) UNBOUND; + public static Supplier BRUTALFLY_SPIT = (Supplier) UNBOUND; private AntarchySoundEvents() { } @@ -268,6 +284,9 @@ public final class AntarchySoundEvents { Supplier toreterrorJumpUp, Supplier toreterrorJumpLand, Supplier stinkyFly, + Supplier stinkBugFart, + Supplier stinkBugIdle, + Supplier rollyPollyIdle, Supplier creepingHorrorGrowl, Supplier creepingHorrorHurt, Supplier creepingHorrorBite, @@ -275,7 +294,20 @@ public final class AntarchySoundEvents { Supplier lurkingTerrorHurt, Supplier lurkingTerrorBite, Supplier lurkingTerrorFlyLoop, - Supplier ductTapeUse + Supplier ductTapeUse, + Supplier herculesBeetleIdle, + Supplier herculesBeetleHurt, + Supplier herculesBeetleAttack, + Supplier herculesBeetleCry, + Supplier herculesBeetleChargeStart, + Supplier herculesBeetleKnockedDown, + Supplier jumpyBugIdle, + Supplier spitBugIdle, + Supplier jumpyBugHurt, + Supplier jumpyBugJump, + Supplier spitBugHurt, + Supplier spitBugSpit, + Supplier brutalflySpit ) { SQUIDZOOKA_FIRE = squidzookaFire; SHRINK_RAY_SOUND = shrinkRaySound; @@ -400,6 +432,9 @@ public final class AntarchySoundEvents { TORETERROR_JUMP_UP = toreterrorJumpUp; TORETERROR_JUMP_LAND = toreterrorJumpLand; STINKY_FLY = stinkyFly; + STINK_BUG_FART = stinkBugFart; + STINK_BUG_IDLE = stinkBugIdle; + ROLLY_POLLY_IDLE = rollyPollyIdle; CREEPING_HORROR_GROWL = creepingHorrorGrowl; CREEPING_HORROR_HURT = creepingHorrorHurt; CREEPING_HORROR_BITE = creepingHorrorBite; @@ -408,5 +443,18 @@ public final class AntarchySoundEvents { LURKING_TERROR_BITE = lurkingTerrorBite; LURKING_TERROR_FLY_LOOP = lurkingTerrorFlyLoop; DUCT_TAPE_USE = ductTapeUse; + HERCULES_BEETLE_IDLE = herculesBeetleIdle; + HERCULES_BEETLE_HURT = herculesBeetleHurt; + HERCULES_BEETLE_ATTACK = herculesBeetleAttack; + HERCULES_BEETLE_CRY = herculesBeetleCry; + HERCULES_BEETLE_CHARGE_START = herculesBeetleChargeStart; + HERCULES_BEETLE_KNOCKED_DOWN = herculesBeetleKnockedDown; + JUMPY_BUG_IDLE = jumpyBugIdle; + SPIT_BUG_IDLE = spitBugIdle; + JUMPY_BUG_HURT = jumpyBugHurt; + JUMPY_BUG_JUMP = jumpyBugJump; + SPIT_BUG_HURT = spitBugHurt; + SPIT_BUG_SPIT = spitBugSpit; + BRUTALFLY_SPIT = brutalflySpit; } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java b/common/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java index 083ff961..a3e4083e 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/AntarchyTags.java @@ -36,6 +36,7 @@ public final class AntarchyTags { public static final TagKey ELYTHIA_PORTAL_FRAMES = TagKey.create(Registries.BLOCK, id("elythia_portal_frames")); public static final TagKey THORAXIS_PORTAL_FRAMES = TagKey.create(Registries.BLOCK, id("thoraxis_portal_frames")); public static final TagKey CAVARYN_PORTAL_FRAMES = TagKey.create(Registries.BLOCK, id("cavaryn_portal_frames")); + public static final TagKey ROLLY_CAVERN_CARVEABLE = TagKey.create(Registries.BLOCK, id("rolly_cavern_carveable")); public static final TagKey MINERS_DREAM_CARVABLE = TagKey.create(Registries.BLOCK, id("miners_dream_carvable")); private Blocks() { diff --git a/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java b/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java index 1ef2eff5..6cb8900f 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/CreativeTabOrder.java @@ -45,7 +45,8 @@ public final class CreativeTabOrder { "cut_dream_sandstone_slab" -> 4; case "umbral_moss_block", "umbral_moss_carpet", "blush_moss_block", "blush_moss_carpet" -> 4; - case "uranium_ore", "deepslate_uranium_ore", "titanium_ore", "deepslate_titanium_ore", + case "uranium_ore", "deepslate_uranium_ore", "broodstone_uranium_ore", + "titanium_ore", "deepslate_titanium_ore", "broodstone_titanium_ore", "uranium_block", "titanium_block", "cut_uranium", "cut_titanium", "cut_uranium_slab", "cut_titanium_slab", "cut_uranium_stairs", "cut_titanium_stairs", @@ -56,10 +57,15 @@ public final class CreativeTabOrder { "raw_uranium_block", "raw_titanium_block" -> 7; case "blood_crystal_block", "small_blood_crystal_bud", "medium_blood_crystal_bud", "large_blood_crystal_bud", "budding_blood_crystal", "blood_crystal_cluster", - "myrmite", "broodstone", "chiten_block", "chiten_spike", "amber_moss_block", "amber_moss_carpet" -> 8; + "myrmite", "broodstone", "polished_broodstone", "chiseled_broodstone", "broodstone_bricks", + "broodstone_stairs", "broodstone_slab", "broodstone_wall", + "polished_broodstone_stairs", "polished_broodstone_slab", "polished_broodstone_wall", + "broodstone_brick_stairs", "broodstone_brick_slab", "broodstone_brick_wall", + "chiten_block", "chiten_spike", "amber_moss_block", "amber_moss_carpet", + "glowcap_mushroom", "glowcap_mushroom_block" -> 8; case "ouranwood_leaves", "peach_leaves" -> 9; case "duplicator_sapling", "ouranwood_acorn", "peach_sapling", "corn_seeds" -> 10; - case "orange_milkweed", "pink_milkweed", "camellia", "spider_lily", "lotus", "hushweed", "amber_lichen", "creepvine", + case "orange_milkweed", "pink_milkweed", "camellia", "spider_lily", "lotus", "hushweed", "hanging_creeproots", "molting_vines", "amber_lichen", "creepvine", "triffid_goo_block", "cloud_block", "wasp_nest", "red_ant_nest", "brown_ant_nest", "rainbow_ant_nest", "termite_nest", "star_coral", "star_coral_fan", "star_coral_block", @@ -67,14 +73,14 @@ public final class CreativeTabOrder { case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling", "lumen_froglight", "roseate_froglight" -> 12; case "antimetal_scaffolding" -> 13; - case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg" -> 14; + case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg", "creeping_horror_egg", "lurking_terror_egg", "jumpy_bug_egg" -> 14; case "ultimate_pickaxe", "ultimate_axe", "ultimate_shovel", "ultimate_hoe", "duct_tape", "diamond_minecart", "critter_cage", "gravity_sculk_sensor", "miners_dream" -> 15; case "bile_bucket", "ichor_bucket", "antiwater_bucket", "cloud_bucket", "lumen_bucket" -> 16; case "moggles", "brutalfly_elytra", "fallen_king_crown", "jumpy_boots" -> 17; case "battle_axe", "basilisk_dagger", "squidzooka", "rpo_launcher", "shrink_ray", "growth_ray", "gravity_gun", "water_cannon", "nightmare_sword", "lucid_pearl", "scorpion_whip", "blood_crystal_katana", - "big_bertha", "big_bertha_blade", "big_bertha_handle", "big_bertha_hilt", + "attitude_adjuster", "big_bertha", "big_bertha_blade", "big_bertha_handle", "big_bertha_hilt", "ultimate_sword", "ultimate_mace", "krakens_grasp" -> 18; case "primordial_helmet", "primordial_chestplate", "primordial_leggings", "primordial_boots", @@ -87,12 +93,12 @@ public final class CreativeTabOrder { case "ultimate_bow", "ultimate_crossbow" -> 20; case "cloud_shark_fin_soup", "mud_pie", "peach_pie", "cornbread", "popcorn", "rainbow_sugar", "blood_crystal_apple", "spirit_apple", "peach", "raw_corndog", "cooked_corndog", - "raw_venison", "cooked_venison" -> 21; + "raw_venison", "cooked_venison", "raw_bug_meat", "cooked_bug_meat", "broodfruit" -> 21; case "blood_crystal_shard", "cloud_shark_fin", "basilisk_fang", "kraken_tooth", "kraken_tentacle", "emperor_scorpion_stinger", "nightmare_scale", "molevore_nose", "moleworm", "uranium_nugget", "titanium_nugget", "uranium_ingot", "titanium_ingot", "lucid_eye", - "mantis_claw", "jumpy_bug_leg", "brutalfly_wing", "cornea_ear", + "mantis_claw", "hercules_horn", "jumpy_bug_leg", "brutalfly_wing", "cornea_ear", "primordial_scute", "triffid_goo", "vortex_eye", "king_scale", "queen_scale", "chiten", "stink_bug", "corn", "high_fructose_corn_syrup" -> 22; case "reverie_bottle", "glimmer_bottle", "root_beer" -> 24; @@ -102,7 +108,7 @@ public final class CreativeTabOrder { "moleworm_spawn_egg", "mantis_spawn_egg", "alpha_mantis_spawn_egg", "rolly_polly_spawn_egg", "molevore_spawn_egg", "triffid_spawn_egg", "apple_cow_spawn_egg", "golden_apple_cow_spawn_egg", "enchanted_golden_apple_cow_spawn_egg", "dr_trayaurus_spawn_egg", "wasp_spawn_egg", - "bomber_spawn_egg", "jumpy_bug_spawn_egg", "stink_bug_spawn_egg", "cloud_shark_spawn_egg", + "bomber_spawn_egg", "jumpy_bug_spawn_egg", "spit_bug_spawn_egg", "stink_bug_spawn_egg", "cloud_shark_spawn_egg", "kraken_spawn_egg", "missile_squid_spawn_egg", "octopus_bomb_spawn_egg", "nightmare_spawn_egg", "bed_bug_spawn_egg", "lucid_spawn_egg", "scorpion_spawn_egg", "basilisk_spawn_egg", "emperor_scorpion_spawn_egg", "toreterror_spawn_egg", @@ -163,6 +169,8 @@ public final class CreativeTabOrder { case "camellia" -> 2; case "spider_lily" -> 3; case "hushweed" -> 4; + case "hanging_creeproots" -> 21; + case "molting_vines" -> 22; case "amber_lichen" -> 5; case "creepvine" -> 6; case "triffid_goo_block" -> 7; @@ -187,14 +195,30 @@ public final class CreativeTabOrder { case "blood_crystal_cluster" -> 5; case "myrmite" -> 6; case "broodstone" -> 7; - case "chiten_block" -> 8; - case "chiten_spike" -> 9; - case "amber_moss_block" -> 10; - case "amber_moss_carpet" -> 11; + case "polished_broodstone" -> 8; + case "chiseled_broodstone" -> 9; + case "broodstone_bricks" -> 10; + case "broodstone_stairs" -> 11; + case "broodstone_slab" -> 12; + case "broodstone_wall" -> 13; + case "polished_broodstone_stairs" -> 14; + case "polished_broodstone_slab" -> 15; + case "polished_broodstone_wall" -> 16; + case "broodstone_brick_stairs" -> 17; + case "broodstone_brick_slab" -> 18; + case "broodstone_brick_wall" -> 19; + case "chiten_block" -> 20; + case "chiten_spike" -> 21; + case "amber_moss_block" -> 22; + case "amber_moss_carpet" -> 23; + case "glowcap_mushroom" -> 24; + case "glowcap_mushroom_block" -> 25; case "uranium_ore" -> 0; case "deepslate_uranium_ore" -> 1; - case "titanium_ore" -> 2; - case "deepslate_titanium_ore" -> 3; + case "broodstone_uranium_ore" -> 2; + case "titanium_ore" -> 3; + case "deepslate_titanium_ore" -> 4; + case "broodstone_titanium_ore" -> 5; case "uranium_block" -> 4; case "titanium_block" -> 5; case "cut_uranium" -> 6; @@ -256,16 +280,17 @@ public final class CreativeTabOrder { case "gravity_gun" -> 6; case "water_cannon" -> 7; case "nightmare_sword" -> 8; - case "lucid_pearl" -> 9; - case "scorpion_whip" -> 10; - case "blood_crystal_katana" -> 11; - case "big_bertha" -> 12; - case "big_bertha_blade" -> 13; - case "big_bertha_handle" -> 14; - case "big_bertha_hilt" -> 15; - case "ultimate_sword" -> 16; - case "ultimate_mace" -> 17; - case "krakens_grasp" -> 18; + case "attitude_adjuster" -> 9; + case "lucid_pearl" -> 10; + case "scorpion_whip" -> 11; + case "blood_crystal_katana" -> 12; + case "big_bertha" -> 13; + case "big_bertha_blade" -> 14; + case "big_bertha_handle" -> 15; + case "big_bertha_hilt" -> 16; + case "ultimate_sword" -> 17; + case "ultimate_mace" -> 18; + case "krakens_grasp" -> 19; case "primordial_helmet" -> 0; case "primordial_chestplate" -> 1; case "primordial_leggings" -> 2; @@ -294,6 +319,9 @@ public final class CreativeTabOrder { case "cooked_corndog" -> 7; case "raw_venison" -> 8; case "cooked_venison" -> 9; + case "raw_bug_meat" -> 10; + case "cooked_bug_meat" -> 11; + case "broodfruit" -> 12; case "blood_crystal_apple" -> 10; case "spirit_apple" -> 11; case "peach" -> 12; @@ -315,18 +343,19 @@ public final class CreativeTabOrder { case "titanium_ingot" -> 12; case "lucid_eye" -> 13; case "mantis_claw" -> 14; - case "jumpy_bug_leg" -> 15; - case "brutalfly_wing" -> 16; - case "cornea_ear" -> 17; - case "primordial_scute" -> 18; - case "triffid_goo" -> 19; - case "vortex_eye" -> 20; - case "king_scale" -> 21; - case "queen_scale" -> 22; - case "chiten" -> 23; - case "stink_bug" -> 24; - case "corn" -> 25; - case "high_fructose_corn_syrup" -> 26; + case "hercules_horn" -> 15; + case "jumpy_bug_leg" -> 16; + case "brutalfly_wing" -> 17; + case "cornea_ear" -> 18; + case "primordial_scute" -> 19; + case "triffid_goo" -> 20; + case "vortex_eye" -> 21; + case "king_scale" -> 22; + case "queen_scale" -> 23; + case "chiten" -> 24; + case "stink_bug" -> 25; + case "corn" -> 26; + case "high_fructose_corn_syrup" -> 27; default -> 0; }; } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java index f4ba338a..1f2857b1 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/CritterCageBlock.java @@ -2,11 +2,14 @@ package com.craisinlord.antarchy.content.block; import com.craisinlord.antarchy.content.AntarchyObjects; import com.craisinlord.antarchy.content.block.entity.CritterCageBlockEntity; +import com.craisinlord.antarchy.content.entity.ant.AntTeleportHelper; import com.mojang.serialization.MapCodec; +import java.util.List; import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.player.Player; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionResult; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; @@ -16,6 +19,9 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; @@ -62,10 +68,24 @@ public class CritterCageBlock extends BaseEntityBlock { } @Override - public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, BlockEntity blockEntity, ItemStack stack) { - super.playerDestroy(level, player, pos, state, blockEntity, stack); - if (level instanceof ServerLevel serverLevel && blockEntity instanceof CritterCageBlockEntity critterCageBlockEntity) { - Block.popResource(serverLevel, pos, critterCageBlockEntity.toItemStack()); + protected List getDrops(BlockState state, LootParams.Builder params) { + BlockEntity blockEntity = params.getOptionalParameter(LootContextParams.BLOCK_ENTITY); + if (blockEntity instanceof CritterCageBlockEntity critterCageBlockEntity) { + return List.of(critterCageBlockEntity.toItemStack()); } + + return super.getDrops(state, params); + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hitResult) { + if (!(player instanceof ServerPlayer serverPlayer)) { + return InteractionResult.SUCCESS; + } + if (!(level.getBlockEntity(pos) instanceof CritterCageBlockEntity blockEntity)) { + return InteractionResult.PASS; + } + + return AntTeleportHelper.handleCagedAntTeleport(serverPlayer, blockEntity.entityTypeId(), blockEntity.entityData()); } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/GlowcapMushroomBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/GlowcapMushroomBlock.java new file mode 100644 index 00000000..6cc5b12d --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/GlowcapMushroomBlock.java @@ -0,0 +1,115 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.MapCodec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Holder; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class GlowcapMushroomBlock extends BushBlock implements BonemealableBlock { + public static final MapCodec CODEC = Block.simpleCodec(GlowcapMushroomBlock::new); + private static final VoxelShape SHAPE = Block.box(3.9D, 0.0D, 3.9D, 12.1D, 12.0D, 12.1D); + private static final ResourceKey> HUGE_GLOWCAP_MUSHROOM = ResourceKey.create( + Registries.CONFIGURED_FEATURE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "huge_glowcap_mushroom") + ); + private static final int SPREAD_ATTEMPTS = 4; + private static final int MAX_LIGHT_LEVEL = 13; + + public GlowcapMushroomBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + protected VoxelShape getShape(BlockState state, net.minecraft.world.level.BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + protected boolean mayPlaceOn(BlockState state, net.minecraft.world.level.BlockGetter level, BlockPos pos) { + return state.is(BlockTags.MUSHROOM_GROW_BLOCK) || state.isFaceSturdy(level, pos, Direction.UP); + } + + @Override + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + BlockPos belowPos = pos.below(); + BlockState below = level.getBlockState(belowPos); + return this.mayPlaceOn(below, level, belowPos) && (below.is(BlockTags.MUSHROOM_GROW_BLOCK) || level.getRawBrightness(pos, 0) < MAX_LIGHT_LEVEL); + } + + @Override + protected boolean isRandomlyTicking(BlockState state) { + return true; + } + + @Override + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (random.nextInt(25) != 0) { + return; + } + + int spreadRange = 4; + BlockPos targetPos = pos; + for (int i = 0; i < SPREAD_ATTEMPTS; i++) { + targetPos = pos.offset( + random.nextInt(spreadRange * 2 + 1) - spreadRange, + random.nextInt(3) - 1, + random.nextInt(spreadRange * 2 + 1) - spreadRange + ); + if (level.isEmptyBlock(targetPos) && canSpreadTo(level, targetPos)) { + level.setBlock(targetPos, this.defaultBlockState(), 2); + break; + } + } + } + + private boolean canSpreadTo(ServerLevel level, BlockPos pos) { + if (level.getRawBrightness(pos, 0) > MAX_LIGHT_LEVEL) { + return false; + } + BlockState below = level.getBlockState(pos.below()); + return this.mayPlaceOn(below, level, pos.below()); + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state) { + return true; + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return random.nextFloat() < 0.4F; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + Holder.Reference> feature = level.registryAccess() + .lookupOrThrow(Registries.CONFIGURED_FEATURE) + .getOrThrow(HUGE_GLOWCAP_MUSHROOM); + level.removeBlock(pos, false); + if (!feature.value().place(level, level.getChunkSource().getGenerator(), random, pos)) { + level.setBlock(pos, state, 3); + } + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/HangingCreeprootsBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/HangingCreeprootsBlock.java new file mode 100644 index 00000000..866f3a7f --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/HangingCreeprootsBlock.java @@ -0,0 +1,93 @@ +package com.craisinlord.antarchy.content.block; + +import com.mojang.serialization.MapCodec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class HangingCreeprootsBlock extends BushBlock { + public static final MapCodec CODEC = Block.simpleCodec(HangingCreeprootsBlock::new); + public static final IntegerProperty DISTANCE = IntegerProperty.create("distance", 0, 4); + public static final BooleanProperty BOTTOM = BooleanProperty.create("bottom"); + private static final int MAX_DISTANCE = 4; + private static final VoxelShape SHAPE = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 16.0D, 12.0D); + + public HangingCreeprootsBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(DISTANCE, 0).setValue(BOTTOM, true)); + } + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + protected boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(this) || state.isFaceSturdy(level, pos, Direction.DOWN); + } + + @Override + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + BlockPos abovePos = pos.above(); + return this.mayPlaceOn(level.getBlockState(abovePos), level, abovePos); + } + + @Override + protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) { + if (!state.canSurvive(level, pos)) { + return net.minecraft.world.level.block.Blocks.AIR.defaultBlockState(); + } + if (direction == Direction.DOWN) { + boolean bottom = !neighborState.is(this); + if (bottom != state.getValue(BOTTOM)) { + state = state.setValue(BOTTOM, bottom); + } + } + return state; + } + + @Override + protected boolean isRandomlyTicking(BlockState state) { + return state.getValue(BOTTOM) && state.getValue(DISTANCE) < MAX_DISTANCE; + } + + @Override + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (!state.getValue(BOTTOM) || state.getValue(DISTANCE) >= MAX_DISTANCE) { + return; + } + + BlockPos belowPos = pos.below(); + if (random.nextInt(4) != 0 || !level.getBlockState(belowPos).isAir()) { + return; + } + + int distance = state.getValue(DISTANCE); + level.setBlock(pos, state.setValue(BOTTOM, false), Block.UPDATE_CLIENTS); + level.setBlock(belowPos, this.defaultBlockState().setValue(DISTANCE, distance + 1).setValue(BOTTOM, true), Block.UPDATE_ALL); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(DISTANCE, BOTTOM); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/HushweedBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/HushweedBlock.java index a5ab4b04..197d5990 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/HushweedBlock.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/HushweedBlock.java @@ -29,6 +29,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; import org.jetbrains.annotations.Nullable; public class HushweedBlock extends BaseEntityBlock { + private static final VoxelShape SHAPE = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 18.0D, 12.0D); public static final DirectionProperty FACING = BlockStateProperties.VERTICAL_DIRECTION; public static final MapCodec CODEC = Block.simpleCodec(HushweedBlock::new); @@ -61,12 +62,12 @@ public class HushweedBlock extends BaseEntityBlock { @Override protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - return Blocks.AZALEA.defaultBlockState().getShape(level, pos, context); + return SHAPE; } @Override protected VoxelShape getCollisionShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - return Blocks.AZALEA.defaultBlockState().getCollisionShape(level, pos, context); + return SHAPE; } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java new file mode 100644 index 00000000..0d0c8dd5 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/JumpyBugEggBlock.java @@ -0,0 +1,145 @@ +package com.craisinlord.antarchy.content.block; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.JumpyBugEntity; +import com.mojang.serialization.MapCodec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.EntityType; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.RandomSource; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class JumpyBugEggBlock extends Block { + public static final MapCodec CODEC = Block.simpleCodec(JumpyBugEggBlock::new); + public static final IntegerProperty HATCH = BlockStateProperties.HATCH; + public static final BooleanProperty HANGING = BlockStateProperties.HANGING; + public static final BooleanProperty ROTATED = BooleanProperty.create("rotated"); + private static final int MAX_HATCH = 2; + private static final VoxelShape FLOOR_SHAPE = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 16.0D, 15.0D); + private static final VoxelShape CEILING_SHAPE = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 16.0D, 15.0D); + private static final ResourceLocation JUMPY_BUG_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jumpy_bug"); + + public JumpyBugEggBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(HATCH, 0).setValue(HANGING, false).setValue(ROTATED, false)); + } + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return state.getValue(HANGING) ? CEILING_SHAPE : FLOOR_SHAPE; + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + boolean hanging = context.getClickedFace() == Direction.DOWN + || (context.getClickedFace() != Direction.UP && !canSupportFloor(context.getLevel(), context.getClickedPos()) && canSupportCeiling(context.getLevel(), context.getClickedPos())); + boolean rotated = context.getHorizontalDirection().getAxis() == Direction.Axis.X; + return this.defaultBlockState().setValue(HANGING, hanging).setValue(ROTATED, rotated); + } + + @Override + protected BlockState rotate(BlockState state, Rotation rotation) { + return rotation == Rotation.CLOCKWISE_90 || rotation == Rotation.COUNTERCLOCKWISE_90 + ? state.setValue(ROTATED, !state.getValue(ROTATED)) + : state; + } + + @Override + protected BlockState mirror(BlockState state, Mirror mirror) { + return state; + } + + @Override + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + return state.getValue(HANGING) ? canSupportCeiling(level, pos) : canSupportFloor(level, pos); + } + + @Override + protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) { + return state.canSurvive(level, pos) ? super.updateShape(state, direction, neighborState, level, pos, neighborPos) : Blocks.AIR.defaultBlockState(); + } + + private static boolean canSupportFloor(LevelReader level, BlockPos pos) { + return level.getBlockState(pos.below()).isFaceSturdy(level, pos.below(), Direction.UP); + } + + private static boolean canSupportCeiling(LevelReader level, BlockPos pos) { + return level.getBlockState(pos.above()).isFaceSturdy(level, pos.above(), Direction.DOWN); + } + + @Override + protected boolean isRandomlyTicking(BlockState state) { + return true; + } + + @Override + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + if (!this.shouldUpdateHatchLevel(level, pos, state)) { + return; + } + + int hatch = state.getValue(HATCH); + if (hatch < MAX_HATCH) { + level.setBlock(pos, state.setValue(HATCH, hatch + 1), 2); + level.playSound(null, pos, SoundEvents.TURTLE_EGG_CRACK, SoundSource.BLOCKS, 0.7F, 0.95F + random.nextFloat() * 0.1F); + return; + } + + this.hatch(level, pos, random); + } + + private boolean shouldUpdateHatchLevel(Level level, BlockPos pos, BlockState state) { + BlockPos checkPos = state.getValue(HANGING) ? pos.above() : pos.below(); + boolean onAmberMoss = level.getBlockState(checkPos).getBlock() instanceof AmberMossBlock; + return level.random.nextInt(onAmberMoss ? 150 : 500) == 0; + } + + private void hatch(ServerLevel level, BlockPos pos, RandomSource random) { + level.removeBlock(pos, false); + level.playSound(null, pos, SoundEvents.TURTLE_EGG_HATCH, SoundSource.BLOCKS, 0.75F, 0.95F + random.nextFloat() * 0.1F); + @SuppressWarnings("unchecked") + EntityType jumpyBugType = (EntityType) (EntityType) BuiltInRegistries.ENTITY_TYPE.getOptional(JUMPY_BUG_ID).orElse(null); + if (jumpyBugType == null) { + return; + } + JumpyBugEntity entity = jumpyBugType.create(level); + if (entity == null) { + return; + } + double spawnX = pos.getX() + 0.25D + random.nextDouble() * 0.5D; + double spawnZ = pos.getZ() + 0.25D + random.nextDouble() * 0.5D; + entity.moveTo(spawnX, pos.getY() + 0.1D, spawnZ, random.nextFloat() * 360.0F, 0.0F); + level.addFreshEntity(entity); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(HATCH, HANGING, ROTATED); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/MoltingVinesBlock.java b/common/src/main/java/com/craisinlord/antarchy/content/block/MoltingVinesBlock.java new file mode 100644 index 00000000..e3a0156c --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/MoltingVinesBlock.java @@ -0,0 +1,204 @@ +package com.craisinlord.antarchy.content.block; + +import com.mojang.serialization.MapCodec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BonemealableBlock; +import net.minecraft.world.level.block.BushBlock; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class MoltingVinesBlock extends BushBlock implements BonemealableBlock { + public static final MapCodec CODEC = Block.simpleCodec(MoltingVinesBlock::new); + public static final EnumProperty GROWTH_DIRECTION = EnumProperty.create("growth_direction", Direction.class, Direction.UP, Direction.DOWN); + public static final BooleanProperty TOP_CAP = BooleanProperty.create("top_cap"); + public static final BooleanProperty BOTTOM_CAP = BooleanProperty.create("bottom_cap"); + public static final BooleanProperty BROODFRUIT = BooleanProperty.create("broodfruit"); + public static final IntegerProperty DISTANCE = IntegerProperty.create("distance", 0, 6); + private static final int MAX_DISTANCE = 6; + private static final int NATURAL_FRUIT_CHANCE = 40; + private static final VoxelShape SHAPE = Block.box(5.0D, 0.0D, 5.0D, 11.0D, 16.0D, 11.0D); + private static final ResourceLocation BROODFRUIT_ITEM_ID = ResourceLocation.fromNamespaceAndPath("antarchy", "broodfruit"); + + public MoltingVinesBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(GROWTH_DIRECTION, Direction.DOWN) + .setValue(TOP_CAP, false) + .setValue(BOTTOM_CAP, true) + .setValue(BROODFRUIT, false) + .setValue(DISTANCE, 0)); + } + + @Override + public MapCodec codec() { + return CODEC; + } + + @Override + protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { + return SHAPE; + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + BlockGetter level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction growthDirection = resolveGrowthDirection(level, pos); + return computeState(this.defaultBlockState().setValue(GROWTH_DIRECTION, growthDirection).setValue(DISTANCE, 0), level, pos); + } + + private Direction resolveGrowthDirection(BlockGetter level, BlockPos pos) { + BlockState belowState = level.getBlockState(pos.below()); + if (belowState.is(this) && belowState.getValue(GROWTH_DIRECTION) == Direction.UP) { + return Direction.UP; + } + + BlockState aboveState = level.getBlockState(pos.above()); + if (aboveState.is(this) && aboveState.getValue(GROWTH_DIRECTION) == Direction.DOWN) { + return Direction.DOWN; + } + + return hasSturdyAnchor(level, pos, Direction.UP) ? Direction.DOWN : Direction.UP; + } + + private static boolean hasSturdyAnchor(BlockGetter level, BlockPos pos, Direction towardAnchor) { + BlockPos anchorPos = pos.relative(towardAnchor); + BlockState anchorState = level.getBlockState(anchorPos); + return anchorState.isFaceSturdy(level, anchorPos, towardAnchor.getOpposite()); + } + + @Override + protected boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { + return state.is(this) || state.isFaceSturdy(level, pos, Direction.DOWN) || state.isFaceSturdy(level, pos, Direction.UP); + } + + @Override + protected boolean canSurvive(BlockState state, LevelReader level, BlockPos pos) { + Direction anchorDirection = state.getValue(GROWTH_DIRECTION).getOpposite(); + BlockPos anchorPos = pos.relative(anchorDirection); + BlockState anchorState = level.getBlockState(anchorPos); + if (anchorState.is(this)) { + return true; + } + return anchorState.isFaceSturdy(level, anchorPos, anchorDirection.getOpposite()); + } + + @Override + protected BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor level, BlockPos pos, BlockPos neighborPos) { + if (!state.canSurvive(level, pos)) { + return net.minecraft.world.level.block.Blocks.AIR.defaultBlockState(); + } + if (direction == Direction.UP || direction == Direction.DOWN) { + return computeState(state, level, pos); + } + return state; + } + + private static BlockState computeState(BlockState state, BlockGetter level, BlockPos pos) { + boolean aboveIsSame = level.getBlockState(pos.above()).is(state.getBlock()); + boolean belowIsSame = level.getBlockState(pos.below()).is(state.getBlock()); + Direction growthDirection = state.getValue(GROWTH_DIRECTION); + + boolean topCap = growthDirection == Direction.UP && !aboveIsSame; + boolean bottomCap = growthDirection == Direction.DOWN && !belowIsSame; + + state = state.setValue(TOP_CAP, topCap).setValue(BOTTOM_CAP, bottomCap); + if (topCap || bottomCap) { + state = state.setValue(BROODFRUIT, false); + } + return state; + } + + @Override + protected boolean isRandomlyTicking(BlockState state) { + return true; + } + + @Override + protected void randomTick(BlockState state, ServerLevel level, BlockPos pos, RandomSource random) { + boolean isTip = state.getValue(GROWTH_DIRECTION) == Direction.DOWN ? state.getValue(BOTTOM_CAP) : state.getValue(TOP_CAP); + if (isTip && state.getValue(DISTANCE) < MAX_DISTANCE && random.nextInt(6) == 0) { + BlockPos growPos = pos.relative(state.getValue(GROWTH_DIRECTION)); + if (level.getBlockState(growPos).isAir()) { + BlockState grownState = this.defaultBlockState() + .setValue(GROWTH_DIRECTION, state.getValue(GROWTH_DIRECTION)) + .setValue(DISTANCE, state.getValue(DISTANCE) + 1); + level.setBlock(growPos, grownState, Block.UPDATE_ALL); + + BlockState posState = level.getBlockState(pos); + if (posState.is(this)) { + level.setBlock(pos, computeState(posState, level, pos), Block.UPDATE_CLIENTS); + } + BlockState growState = level.getBlockState(growPos); + if (growState.is(this)) { + level.setBlock(growPos, computeState(growState, level, growPos), Block.UPDATE_CLIENTS); + } + } + } + + if (!state.getValue(TOP_CAP) && !state.getValue(BOTTOM_CAP) && !state.getValue(BROODFRUIT) && random.nextInt(NATURAL_FRUIT_CHANCE) == 0) { + level.setBlock(pos, state.setValue(BROODFRUIT, true), Block.UPDATE_ALL); + } + } + + @Override + public boolean isValidBonemealTarget(LevelReader level, BlockPos pos, BlockState state) { + return !state.getValue(TOP_CAP) && !state.getValue(BOTTOM_CAP) && !state.getValue(BROODFRUIT); + } + + @Override + public boolean isBonemealSuccess(Level level, RandomSource random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void performBonemeal(ServerLevel level, RandomSource random, BlockPos pos, BlockState state) { + level.setBlock(pos, state.setValue(BROODFRUIT, true), Block.UPDATE_ALL); + } + + @Override + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) { + if (!state.getValue(BROODFRUIT)) { + return super.useItemOn(stack, state, level, pos, player, hand, hitResult); + } + + if (!level.isClientSide) { + BuiltInRegistries.ITEM.getOptional(BROODFRUIT_ITEM_ID).ifPresent(item -> harvestFruit(level, pos, item)); + level.setBlock(pos, state.setValue(BROODFRUIT, false), Block.UPDATE_ALL); + } + + return ItemInteractionResult.sidedSuccess(level.isClientSide); + } + + private static void harvestFruit(Level level, BlockPos pos, Item item) { + Block.popResource(level, pos, new ItemStack(item, 1)); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(GROWTH_DIRECTION, TOP_CAP, BOTTOM_CAP, BROODFRUIT, DISTANCE); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java index 0ed8ed5b..673d7345 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/block/entity/CritterCageBlockEntity.java @@ -95,6 +95,16 @@ public class CritterCageBlockEntity extends BlockEntity { return this.secondaryColor; } + @Nullable + public ResourceLocation entityTypeId() { + return this.entityTypeId; + } + + @Nullable + public CompoundTag entityData() { + return this.entityData == null ? null : this.entityData.copy(); + } + @Nullable public Entity getOrCreateClientDisplayEntity(Level level) { if (level == null || level.isClientSide == false) { diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/CameraShakeClientState.java b/common/src/main/java/com/craisinlord/antarchy/content/client/CameraShakeClientState.java index 4cd02941..e2a336f9 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/CameraShakeClientState.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/CameraShakeClientState.java @@ -16,7 +16,14 @@ public final class CameraShakeClientState { private record Source(double range, float strength, BooleanSupplier active) { } + private record Impact(Vec3 position, float intensity, int remainingTicks, int totalTicks, float radius) { + private Impact ticked() { + return new Impact(position, intensity, remainingTicks - 1, totalTicks, radius); + } + } + private static final Map SOURCES = new HashMap<>(); + private static final java.util.List IMPACTS = new java.util.ArrayList<>(); private CameraShakeClientState() { } @@ -26,10 +33,6 @@ public final class CameraShakeClientState { } public static float getStrength(Vec3 cameraPos) { - if (SOURCES.isEmpty()) { - return 0.0F; - } - float total = 0.0F; Iterator> iterator = SOURCES.entrySet().iterator(); while (iterator.hasNext()) { @@ -49,10 +52,41 @@ public final class CameraShakeClientState { total += (float) ((1.0D - distance / source.range()) * source.strength()); } + Iterator impactIterator = IMPACTS.iterator(); + while (impactIterator.hasNext()) { + Impact impact = impactIterator.next(); + if (impact.remainingTicks() <= 0) { + impactIterator.remove(); + continue; + } + double distance = Math.sqrt(cameraPos.distanceToSqr(impact.position())); + if (distance > impact.radius()) { + continue; + } + total += (float) ((1.0D - distance / impact.radius()) * impact.intensity() * (impact.remainingTicks() / (float) Math.max(1, impact.totalTicks()))); + } + return total; } + public static void triggerImpact(Vec3 position, float intensity, int durationTicks, float radius) { + int ticks = Math.max(1, durationTicks); + IMPACTS.add(new Impact(position, intensity, ticks, ticks, Math.max(1.0F, radius))); + } + + public static void tick() { + for (int i = IMPACTS.size() - 1; i >= 0; i--) { + Impact impact = IMPACTS.get(i); + if (impact.remainingTicks() <= 1) { + IMPACTS.remove(i); + } else { + IMPACTS.set(i, impact.ticked()); + } + } + } + public static void clear() { SOURCES.clear(); + IMPACTS.clear(); } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/BasiliskModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/BasiliskModel.java index 799d864e..0b1ea7ed 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/model/BasiliskModel.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/BasiliskModel.java @@ -6,6 +6,8 @@ import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class BasiliskModel extends GeoModel { + public static final ResourceLocation EMISSIVE_TEXTURE = + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/basilisk_emissive.png"); @Override public ResourceLocation getModelResource(BasiliskEntity animatable) { diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/BedBugModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/BedBugModel.java index 6ce12c6a..966831f1 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/model/BedBugModel.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/BedBugModel.java @@ -6,6 +6,9 @@ import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class BedBugModel extends GeoModel { + public static final ResourceLocation EMISSIVE_TEXTURE = + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/bed_bug_emissive.png"); + @Override public ResourceLocation getModelResource(BedBugEntity animatable) { return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/bed_bug.geo.json"); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/BrutalflyModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/BrutalflyModel.java index 8ba48354..1b379e47 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/model/BrutalflyModel.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/BrutalflyModel.java @@ -6,6 +6,9 @@ import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class BrutalflyModel extends GeoModel { + public static final ResourceLocation EMISSIVE_TEXTURE = + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/brutalfly_emissive.png"); + @Override public ResourceLocation getModelResource(BrutalflyEntity animatable) { return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/brutalfly.geo.json"); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/HerculesBeetleModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/HerculesBeetleModel.java index 82f53661..bd6eb37d 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/model/HerculesBeetleModel.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/HerculesBeetleModel.java @@ -10,6 +10,8 @@ public class HerculesBeetleModel extends GeoModel { ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/hercules_beetle/hercules_beetle.png"); private static final ResourceLocation TEXTURE_SADDLED = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/hercules_beetle/hercules_beetle_saddle.png"); + public static final ResourceLocation EMISSIVE_TEXTURE = + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/hercules_beetle/hercules_beetle_emissive.png"); @Override public ResourceLocation getModelResource(HerculesBeetleEntity animatable) { diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/JumpyBugModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/JumpyBugModel.java index ce3332d8..56bef5f0 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/model/JumpyBugModel.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/JumpyBugModel.java @@ -6,6 +6,9 @@ import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class JumpyBugModel extends GeoModel { + public static final ResourceLocation EMISSIVE_TEXTURE = + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/jumpy_bug_emissive.png"); + @Override public ResourceLocation getModelResource(JumpyBugEntity animatable) { return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/jumpy_bug.geo.json"); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/KrakenModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/KrakenModel.java index c47a4fb4..93819018 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/model/KrakenModel.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/KrakenModel.java @@ -1,10 +1,14 @@ package com.craisinlord.antarchy.content.client.model; +import com.craisinlord.antarchy.Antarchy; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class KrakenModel extends GeoModel { + public static final ResourceLocation EMISSIVE_TEXTURE = + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/kraken_emissive.png"); + @Override public ResourceLocation getModelResource(KrakenEntity animatable) { return ResourceLocation.fromNamespaceAndPath("antarchy", "geo/kraken.geo.json"); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/model/SpitBugModel.java b/common/src/main/java/com/craisinlord/antarchy/content/client/model/SpitBugModel.java new file mode 100644 index 00000000..a051572b --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/model/SpitBugModel.java @@ -0,0 +1,23 @@ +package com.craisinlord.antarchy.content.client.model; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.entity.SpitBugEntity; +import net.minecraft.resources.ResourceLocation; +import software.bernie.geckolib.model.GeoModel; + +public class SpitBugModel extends GeoModel { + @Override + public ResourceLocation getModelResource(SpitBugEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "geo/spit_bug.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(SpitBugEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "textures/entity/spit_bug.png"); + } + + @Override + public ResourceLocation getAnimationResource(SpitBugEntity animatable) { + return ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "animations/spit_bug.animation.json"); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BasiliskRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BasiliskRenderer.java index b962a563..85c4b92b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BasiliskRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BasiliskRenderer.java @@ -5,16 +5,20 @@ import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity; 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.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class BasiliskRenderer extends GeoEntityRenderer { public BasiliskRenderer(EntityRendererProvider.Context context) { super(context, new BasiliskModel()); this.shadowRadius = 1.0F; + this.addRenderLayer(new BasiliskEmissiveLayer(this)); } @Override @@ -31,4 +35,30 @@ public class BasiliskRenderer extends GeoEntityRenderer { protected float getDeathMaxRotation(BasiliskEntity animatable) { return 0.0F; } + + private static final class BasiliskEmissiveLayer extends GeoRenderLayer { + private BasiliskEmissiveLayer(GeoEntityRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, BasiliskEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + RenderType emissiveType = RenderType.eyes(BasiliskModel.EMISSIVE_TEXTURE); + VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType); + this.getRenderer().reRender( + bakedModel, + poseStack, + bufferSource, + animatable, + emissiveType, + emissiveBuffer, + partialTick, + 0xF000F0, + OverlayTexture.NO_OVERLAY, + 0xFFFFFFFF + ); + } + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BedBugRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BedBugRenderer.java index 846857f2..25e5d975 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BedBugRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BedBugRenderer.java @@ -5,10 +5,13 @@ import com.craisinlord.antarchy.content.entity.BedBugEntity; 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.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class BedBugRenderer extends GeoEntityRenderer { private static final float ADULT_SCALE = 0.9F; @@ -19,6 +22,7 @@ public class BedBugRenderer extends GeoEntityRenderer { super(context, new BedBugModel()); this.shadowRadius = ADULT_SHADOW_RADIUS; this.withScale(ADULT_SCALE); + this.addRenderLayer(new BedBugEmissiveLayer(this)); } @Override @@ -32,4 +36,30 @@ public class BedBugRenderer extends GeoEntityRenderer { this.shadowRadius = ADULT_SHADOW_RADIUS; } } + + private static final class BedBugEmissiveLayer extends GeoRenderLayer { + private BedBugEmissiveLayer(GeoEntityRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, BedBugEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + RenderType emissiveType = RenderType.eyes(BedBugModel.EMISSIVE_TEXTURE); + VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType); + this.getRenderer().reRender( + bakedModel, + poseStack, + bufferSource, + animatable, + emissiveType, + emissiveBuffer, + partialTick, + 0xF000F0, + OverlayTexture.NO_OVERLAY, + 0xFFFFFFFF + ); + } + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BrutalflyRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BrutalflyRenderer.java index a5d7f88d..b4a925e9 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BrutalflyRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/BrutalflyRenderer.java @@ -7,11 +7,13 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.MultiBufferSource; 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.jetbrains.annotations.Nullable; import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class BrutalflyRenderer extends GeoEntityRenderer { @@ -20,6 +22,7 @@ public class BrutalflyRenderer extends GeoEntityRenderer { public BrutalflyRenderer(EntityRendererProvider.Context context) { super(context, new BrutalflyModel()); this.shadowRadius = 1.35F; + this.addRenderLayer(new BrutalflyEmissiveLayer(this)); } @Override @@ -53,4 +56,30 @@ public class BrutalflyRenderer extends GeoEntityRenderer { protected float getDeathMaxRotation(BrutalflyEntity animatable) { return 0.0F; } + + private static final class BrutalflyEmissiveLayer extends GeoRenderLayer { + private BrutalflyEmissiveLayer(GeoEntityRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, BrutalflyEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + RenderType emissiveType = RenderType.eyes(BrutalflyModel.EMISSIVE_TEXTURE); + VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType); + this.getRenderer().reRender( + bakedModel, + poseStack, + bufferSource, + animatable, + emissiveType, + emissiveBuffer, + partialTick, + 0xF000F0, + OverlayTexture.NO_OVERLAY, + 0xFFFFFFFF + ); + } + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/HerculesBeetleRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/HerculesBeetleRenderer.java index 47ef67c4..88b82f1b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/HerculesBeetleRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/HerculesBeetleRenderer.java @@ -2,11 +2,46 @@ package com.craisinlord.antarchy.content.client.renderer; import com.craisinlord.antarchy.content.client.model.HerculesBeetleModel; import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity; +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.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class HerculesBeetleRenderer extends GeoEntityRenderer { public HerculesBeetleRenderer(EntityRendererProvider.Context context) { super(context, new HerculesBeetleModel()); + this.addRenderLayer(new HerculesBeetleEmissiveLayer(this)); + } + + private static final class HerculesBeetleEmissiveLayer extends GeoRenderLayer { + private HerculesBeetleEmissiveLayer(GeoEntityRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, HerculesBeetleEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + RenderType emissiveType = RenderType.eyes(HerculesBeetleModel.EMISSIVE_TEXTURE); + VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType); + this.getRenderer().reRender( + bakedModel, + poseStack, + bufferSource, + animatable, + emissiveType, + emissiveBuffer, + partialTick, + 0xF000F0, + OverlayTexture.NO_OVERLAY, + 0xFFFFFFFF + ); + } } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/JumpyBugRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/JumpyBugRenderer.java index d51f86e9..28797c71 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/JumpyBugRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/JumpyBugRenderer.java @@ -8,16 +8,19 @@ import com.mojang.math.Axis; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; import software.bernie.geckolib.util.Color; public class JumpyBugRenderer extends GeoEntityRenderer { public JumpyBugRenderer(EntityRendererProvider.Context context) { super(context, new JumpyBugModel()); this.shadowRadius = 6.0F; + this.addRenderLayer(new JumpyBugEmissiveLayer(this)); } @Override @@ -41,4 +44,34 @@ public class JumpyBugRenderer extends GeoEntityRenderer { poseStack.mulPose(Axis.ZP.rotationDegrees(180.0F)); } } + + private static final class JumpyBugEmissiveLayer extends GeoRenderLayer { + private JumpyBugEmissiveLayer(GeoEntityRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, JumpyBugEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + RenderType emissiveType = animatable.isCamouflaged() + ? RenderType.entityTranslucent(JumpyBugModel.EMISSIVE_TEXTURE) + : RenderType.eyes(JumpyBugModel.EMISSIVE_TEXTURE); + int alpha = Math.max(10, Math.min(255, Math.round(animatable.getVisualAlpha(partialTick) * 255.0F))); + int colour = (alpha << 24) | 0x00FFFFFF; + VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType); + this.getRenderer().reRender( + bakedModel, + poseStack, + bufferSource, + animatable, + emissiveType, + emissiveBuffer, + partialTick, + 0xF000F0, + OverlayTexture.NO_OVERLAY, + colour + ); + } + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/KrakenRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/KrakenRenderer.java index 83b72cc1..3545e753 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/KrakenRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/KrakenRenderer.java @@ -2,13 +2,48 @@ package com.craisinlord.antarchy.content.client.renderer; import com.craisinlord.antarchy.content.client.model.KrakenModel; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; +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.EntityRendererProvider; +import net.minecraft.client.renderer.texture.OverlayTexture; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.renderer.GeoEntityRenderer; +import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class KrakenRenderer extends GeoEntityRenderer { public KrakenRenderer(EntityRendererProvider.Context context) { super(context, new KrakenModel()); this.shadowRadius = 2.0F; this.withScale(1.5F); + this.addRenderLayer(new KrakenEmissiveLayer(this)); + } + + private static final class KrakenEmissiveLayer extends GeoRenderLayer { + private KrakenEmissiveLayer(GeoEntityRenderer renderer) { + super(renderer); + } + + @Override + public void render(PoseStack poseStack, KrakenEntity animatable, BakedGeoModel bakedModel, @Nullable RenderType renderType, + MultiBufferSource bufferSource, @Nullable VertexConsumer buffer, float partialTick, + int packedLight, int packedOverlay) { + RenderType emissiveType = RenderType.eyes(KrakenModel.EMISSIVE_TEXTURE); + VertexConsumer emissiveBuffer = bufferSource.getBuffer(emissiveType); + this.getRenderer().reRender( + bakedModel, + poseStack, + bufferSource, + animatable, + emissiveType, + emissiveBuffer, + partialTick, + 0xF000F0, + OverlayTexture.NO_OVERLAY, + 0xFFFFFFFF + ); + } } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/SpitBugProjectileRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/SpitBugProjectileRenderer.java new file mode 100644 index 00000000..7b9fbedd --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/SpitBugProjectileRenderer.java @@ -0,0 +1,73 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.entity.SpitBugProjectileEntity; +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 SpitBugProjectileRenderer extends EntityRenderer { + private static final ResourceLocation PROJECTILE_TEXTURE = + ResourceLocation.withDefaultNamespace("textures/entity/enderdragon/dragon_fireball.png"); + + public SpitBugProjectileRenderer(EntityRendererProvider.Context context) { + super(context); + } + + @Override + protected int getBlockLightLevel(SpitBugProjectileEntity entity, BlockPos pos) { + return 15; + } + + @Override + public void render(SpitBugProjectileEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource buffer, int packedLight) { + poseStack.pushPose(); + poseStack.mulPose(this.entityRenderDispatcher.cameraOrientation()); + + float scale = entity.getRenderScale(partialTick); + poseStack.scale(scale, scale, scale); + + VertexConsumer vertexConsumer = buffer.getBuffer(RenderType.entityTranslucent(PROJECTILE_TEXTURE)); + PoseStack.Pose pose = poseStack.last(); + Matrix4f matrix4f = pose.pose(); + float alpha = entity.isLingering() ? 0.78F : 0.95F; + + addVertex(vertexConsumer, pose, matrix4f, -0.5F, -0.5F, 0.0F, 1.0F, alpha, packedLight); + addVertex(vertexConsumer, pose, matrix4f, 0.5F, -0.5F, 1.0F, 1.0F, alpha, packedLight); + addVertex(vertexConsumer, pose, matrix4f, 0.5F, 0.5F, 1.0F, 0.0F, alpha, packedLight); + addVertex(vertexConsumer, pose, matrix4f, -0.5F, 0.5F, 0.0F, 0.0F, alpha, 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, + float alpha, + int packedLight + ) { + vertexConsumer.addVertex(matrix4f, x, y, 0.0F) + .setColor(0.55F, 1.0F, 0.35F, alpha) + .setUv(u, v) + .setOverlay(OverlayTexture.NO_OVERLAY) + .setLight(packedLight) + .setNormal(pose, 0.0F, 0.0F, 1.0F); + } + + @Override + public ResourceLocation getTextureLocation(SpitBugProjectileEntity entity) { + return PROJECTILE_TEXTURE; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/SpitBugRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/SpitBugRenderer.java new file mode 100644 index 00000000..34bae797 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/SpitBugRenderer.java @@ -0,0 +1,14 @@ +package com.craisinlord.antarchy.content.client.renderer; + +import com.craisinlord.antarchy.content.client.model.SpitBugModel; +import com.craisinlord.antarchy.content.entity.SpitBugEntity; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import software.bernie.geckolib.renderer.GeoEntityRenderer; + +public class SpitBugRenderer extends GeoEntityRenderer { + public SpitBugRenderer(EntityRendererProvider.Context context) { + super(context, new SpitBugModel()); + this.shadowRadius = 1.6F; + this.withScale(0.85F); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java index 3c2dff29..62c5e00c 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/client/renderer/glimmer/GlimmerRenderer.java @@ -49,8 +49,8 @@ public class GlimmerRenderer extends GeoEntityRenderer { poseStack.scale(growth, growth, growth); // Compute body yaw directly from the entity's own tracked fields rather than trusting - // the ambient entityYaw parameter, so the body pose and the head-offset math below are - // always self-consistent (this is what caused the head to look "detached" from the body). + // the ambient entityYaw parameter, so the body pose and the head-offset math below stay + // self-consistent. float bodyYaw = Mth.rotLerp(partialTick, entity.yBodyRotO, entity.yBodyRot); poseStack.mulPose(Axis.YP.rotationDegrees(180.0F - bodyYaw)); poseStack.scale(-1.0F, -1.0F, 1.0F); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageSources.java b/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageSources.java index 6353ea6d..c9d80c99 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageSources.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageSources.java @@ -115,6 +115,34 @@ public final class AntarchyDamageSources { ); } + public static DamageSource spitBugDisrespect(ServerLevel level, @Nullable Entity directEntity, @Nullable Entity causingEntity) { + return new DamageSource( + level.registryAccess() + .registryOrThrow(Registries.DAMAGE_TYPE) + .getHolderOrThrow(AntarchyDamageTypes.SPIT_BUG_DISRESPECT), + directEntity, + causingEntity + ); + } + + public static DamageSource jumpyBugJump(ServerLevel level, Entity attacker) { + return new DamageSource( + level.registryAccess() + .registryOrThrow(Registries.DAMAGE_TYPE) + .getHolderOrThrow(AntarchyDamageTypes.JUMPY_BUG_JUMP), + attacker + ); + } + + public static DamageSource herculesBeetleObliteration(ServerLevel level, Entity attacker) { + return new DamageSource( + level.registryAccess() + .registryOrThrow(Registries.DAMAGE_TYPE) + .getHolderOrThrow(AntarchyDamageTypes.HERCULES_BEETLE_OBLITERATION), + attacker + ); + } + public static DamageSource waterSoaked(Level level, @Nullable Entity directEntity, @Nullable Entity causingEntity) { return new DamageSource( level.registryAccess() diff --git a/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageTypes.java b/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageTypes.java index e6ba90c0..d8ac9947 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageTypes.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/damage/AntarchyDamageTypes.java @@ -85,6 +85,24 @@ public final class AntarchyDamageTypes { ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "rpo_launcher_blast") ); + public static final ResourceKey SPIT_BUG_DISRESPECT = + ResourceKey.create( + Registries.DAMAGE_TYPE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "spit_bug_disrespect") + ); + + public static final ResourceKey JUMPY_BUG_JUMP = + ResourceKey.create( + Registries.DAMAGE_TYPE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jumpy_bug_jump") + ); + + public static final ResourceKey HERCULES_BEETLE_OBLITERATION = + ResourceKey.create( + Registries.DAMAGE_TYPE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "hercules_beetle_obliteration") + ); + private AntarchyDamageTypes() { } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java index 166dadb6..c7fb4e7d 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/DrTrayaurusEntity.java @@ -28,6 +28,7 @@ public class DrTrayaurusEntity extends AbstractVillager { public DrTrayaurusEntity(EntityType entityType, Level level) { super(entityType, level); + this.setCustomName(DISPLAY_NAME); } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/HerculesBeetleEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/HerculesBeetleEntity.java index 9c0bffee..4cd5c7d3 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/HerculesBeetleEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/HerculesBeetleEntity.java @@ -1,7 +1,9 @@ package com.craisinlord.antarchy.content.entity; import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchySoundEvents; import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.damage.AntarchyDamageSources; import com.craisinlord.antarchy.content.item.BigBerthaItem; import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync; import java.util.EnumSet; @@ -18,6 +20,7 @@ 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.advancements.CriteriaTriggers; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; @@ -315,6 +318,10 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl this.flightCooldown--; } + if (this.isFlying() && this.tickCount % 16 == 0) { + this.playSound(AntarchySoundEvents.MANTIS_FLY_LOOP.get(), 0.5F, 0.85F + this.random.nextFloat() * 0.1F); + } + if (!this.level().isClientSide && !this.isKnockedDown() && this.isInWall()) { this.breakBlocksForSuffocation(); } @@ -564,6 +571,7 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl this.setDeltaMovement(Vec3.ZERO); this.actionTicks = KNOCKED_DOWN_TICKS; this.setAnimationState(ANIM_KNOCKED_DOWN); + this.playSound(AntarchySoundEvents.HERCULES_BEETLE_KNOCKED_DOWN.get(), 1.2F, 0.9F); } @Override @@ -578,6 +586,9 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl if (this.random.nextInt(3) == 0) { this.setTame(true, true); this.setOwnerUUID(player.getUUID()); + if (player instanceof ServerPlayer serverPlayer) { + CriteriaTriggers.TAME_ANIMAL.trigger(serverPlayer, this); + } this.setKnockedDown(false); this.heal(this.getMaxHealth()); this.setTarget(null); @@ -702,7 +713,7 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl this.cryCooldown = CRY_COOLDOWN_TICKS; this.combatCryDone = true; this.addEffect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 200, 1)); - this.playSound(SoundEvents.RAVAGER_ROAR, 1.5F, 0.7F); + this.playSound(AntarchySoundEvents.HERCULES_BEETLE_CRY.get(), 1.5F, 0.7F); } private void startRegularAttack(boolean flyingAttack, @Nullable LivingEntity target) { @@ -727,14 +738,16 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl } } } - this.playSound(SoundEvents.RAVAGER_ATTACK, 1.2F, flyingAttack ? 1.1F : 0.9F); + this.playSound(AntarchySoundEvents.HERCULES_BEETLE_ATTACK.get(), 1.2F, flyingAttack ? 1.1F : 0.9F); } private boolean hurtAndLaunchTarget(LivingEntity target, float damage, double horizontalKnockback) { if (!this.canHarm(target)) { return false; } - boolean hurt = target.hurt(this.damageSources().mobAttack(this), damage); + boolean hurt = this.level() instanceof ServerLevel serverLevel + ? target.hurt(AntarchyDamageSources.herculesBeetleObliteration(serverLevel, this), damage) + : target.hurt(this.damageSources().mobAttack(this), damage); if (hurt) { Vec3 push = target.position().subtract(this.position()).multiply(1.0D, 0.0D, 1.0D); if (push.lengthSqr() < 1.0E-4D) { @@ -770,7 +783,7 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl this.pendingMountedCharge = mountedCharge; this.setAnimationState(ANIM_CHARGE_START); this.actionTicks = CHARGE_START_TICKS; - this.playSound(SoundEvents.ENDER_DRAGON_FLAP, 1.3F, 0.7F); + this.playSound(AntarchySoundEvents.HERCULES_BEETLE_CHARGE_START.get(), 1.3F, 0.7F); } private void beginChargeLoop() { @@ -802,7 +815,7 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl if (victim == this) { continue; } - if (victim.hurt(this.damageSources().mobAttack(this), damage)) { + if (victim.hurt(AntarchyDamageSources.herculesBeetleObliteration(serverLevel, this), damage)) { Vec3 push = victim.position().subtract(this.position()); if (push.lengthSqr() < 1.0E-4D) { push = this.chargeDirection; @@ -1175,17 +1188,17 @@ public class HerculesBeetleEntity extends TamableAnimal implements GeoEntity, Fl @Override protected SoundEvent getAmbientSound() { - return this.isKnockedDown() ? null : SoundEvents.RAVAGER_AMBIENT; + return this.isKnockedDown() ? null : AntarchySoundEvents.HERCULES_BEETLE_IDLE.get(); } @Override protected SoundEvent getHurtSound(DamageSource damageSource) { - return SoundEvents.RAVAGER_HURT; + return AntarchySoundEvents.HERCULES_BEETLE_HURT.get(); } @Override protected SoundEvent getDeathSound() { - return SoundEvents.RAVAGER_DEATH; + return AntarchySoundEvents.HERCULES_BEETLE_HURT.get(); } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java index 200f0fbb..86584316 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java @@ -1,6 +1,8 @@ package com.craisinlord.antarchy.content.entity; import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.damage.AntarchyDamageSources; import com.mojang.serialization.Codec; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -71,6 +73,7 @@ public class JumpyBugEntity extends Monster implements GeoEntity { private static final double MELEE_WALK_RANGE = 4.0D; private static final double CHASE_LEAP_RANGE_SQR = 8.0D * 8.0D; private static final int DEFAULT_POUNCE_COOLDOWN = 60; + private static final int POUNCE_PREFERENCE_CHANCE = 7; private static final int DEFAULT_RECOVERY_TICKS = 20; private static final int CHASE_JUMP_COOLDOWN = 25; private static final double POUNCE_HORIZONTAL_SPEED = 0.92D; @@ -79,12 +82,15 @@ public class JumpyBugEntity extends Monster implements GeoEntity { private static final double CHASE_LEAP_VERTICAL = 0.55D; private static final double QUICK_MOVE_SQR = 0.14D * 0.14D; private static final double POUNCE_LAND_DAMAGE_RANGE = 5.0D; + private static final int MAX_POUNCE_TICKS = 60; private static final int CEILING_SEARCH_RANGE = 30; private static final double CAMOUFLAGE_PLAYER_RANGE = 24.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 JUMP_ANIM = RawAnimation.begin().thenLoop("jump"); + private static final RawAnimation JUMP_ANIM = RawAnimation.begin().thenPlay("jump_start").thenLoop("jump_loop"); + private static final RawAnimation JUMP_END_ANIM = RawAnimation.begin().thenPlay("jump_end"); + private static final RawAnimation HANGING_ANIM = RawAnimation.begin().thenLoop("hanging"); private static final RawAnimation ATTACK_ANIM = RawAnimation.begin().thenPlay("attack"); private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); @@ -94,6 +100,7 @@ public class JumpyBugEntity extends Monster implements GeoEntity { private int pounceTicks; private int leapingTicks; private int chaseJumpCooldownTicks; + private boolean preferPounceThisWindow = true; private float visualAlpha = 1.0F; private float previousVisualAlpha = 1.0F; @@ -130,8 +137,8 @@ public class JumpyBugEntity extends Monster implements GeoEntity { @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); - this.goalSelector.addGoal(1, new CloseMeleeGoal()); - this.goalSelector.addGoal(2, new PounceAttackGoal()); + this.goalSelector.addGoal(1, new PounceAttackGoal()); + this.goalSelector.addGoal(2, new CloseMeleeGoal()); this.goalSelector.addGoal(3, new HideOnCeilingGoal()); this.goalSelector.addGoal(4, new ChaseTargetGoal()); this.goalSelector.addGoal(5, new WanderGoal()); @@ -192,6 +199,9 @@ public class JumpyBugEntity extends Monster implements GeoEntity { if (this.pounceCooldownTicks > 0) { this.pounceCooldownTicks--; + if (this.pounceCooldownTicks == 0) { + this.preferPounceThisWindow = this.random.nextInt(10) < POUNCE_PREFERENCE_CHANCE; + } } if (this.recoveryTicks > 0) { this.recoveryTicks--; @@ -252,14 +262,21 @@ public class JumpyBugEntity extends Monster implements GeoEntity { return false; } + @Override + public boolean doHurtTarget(Entity target) { + return target instanceof LivingEntity livingTarget && this.level() instanceof ServerLevel serverLevel + ? livingTarget.hurt(AntarchyDamageSources.jumpyBugJump(serverLevel, this), (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE)) + : super.doHurtTarget(target); + } + @Override protected SoundEvent getAmbientSound() { - return SoundEvents.SPIDER_AMBIENT; + return AntarchySoundEvents.JUMPY_BUG_IDLE.get(); } @Override protected SoundEvent getHurtSound(DamageSource damageSource) { - return SoundEvents.SPIDER_HURT; + return AntarchySoundEvents.JUMPY_BUG_HURT.get(); } @Override @@ -314,11 +331,14 @@ public class JumpyBugEntity extends Monster implements GeoEntity { private PlayState mainAnimController(AnimationState state) { AttackState attackState = this.getAttackState(); - if (attackState == AttackState.POUNCING || attackState == AttackState.CLINGING || attackState == AttackState.LEAPING_TO_CEILING) { + if (attackState == AttackState.CLINGING) { + return state.setAndContinue(HANGING_ANIM); + } + if ((attackState == AttackState.POUNCING || attackState == AttackState.LEAPING_TO_CEILING) && !this.onGround()) { return state.setAndContinue(JUMP_ANIM); } if (attackState == AttackState.RECOVERING) { - return state.setAndContinue(ATTACK_ANIM); + return state.setAndContinue(JUMP_END_ANIM); } return state.setAndContinue(state.isMoving() ? WALK_ANIM : IDLE_ANIM); } @@ -345,10 +365,14 @@ public class JumpyBugEntity extends Monster implements GeoEntity { this.setCamouflaged(false); this.pounceTicks++; - if (this.onGround() && this.pounceTicks > 8) { + if ((this.onGround() && this.pounceTicks > 8) || this.pounceTicks > MAX_POUNCE_TICKS) { LivingEntity target = this.getTarget(); if (target != null && target.isAlive() && this.distanceToSqr(target) <= POUNCE_LAND_DAMAGE_RANGE * POUNCE_LAND_DAMAGE_RANGE) { - target.hurt(this.damageSources().mobAttack(this), (float) AntarchySettings.jumpyBugPounceDamage()); + if (this.level() instanceof ServerLevel serverLevel) { + target.hurt(AntarchyDamageSources.jumpyBugJump(serverLevel, this), (float) AntarchySettings.jumpyBugPounceDamage()); + } else { + target.hurt(this.damageSources().mobAttack(this), (float) AntarchySettings.jumpyBugPounceDamage()); + } } this.finishPounce(false); } @@ -437,6 +461,7 @@ public class JumpyBugEntity extends Monster implements GeoEntity { double upwardSpeed = Math.min(2.5D, Math.sqrt(0.16D * Math.max(dy, 1.0D)) + 0.4D); this.setDeltaMovement(0.0D, upwardSpeed, 0.0D); this.hasImpulse = true; + this.playSound(AntarchySoundEvents.JUMPY_BUG_JUMP.get(), 1.0F, 0.95F + this.random.nextFloat() * 0.1F); } private void cancelLeap() { @@ -460,6 +485,7 @@ public class JumpyBugEntity extends Monster implements GeoEntity { double upward = POUNCE_UPWARD_SPEED + Mth.clamp(to.y * 0.08D, -0.04D, 0.22D); this.setDeltaMovement(direction.x * POUNCE_HORIZONTAL_SPEED, upward, direction.z * POUNCE_HORIZONTAL_SPEED); this.hasImpulse = true; + this.playSound(AntarchySoundEvents.JUMPY_BUG_JUMP.get(), 1.0F, 0.95F + this.random.nextFloat() * 0.1F); } private void finishPounce(boolean keepMomentum) { @@ -573,6 +599,7 @@ public class JumpyBugEntity extends Monster implements GeoEntity { && target.isAlive() && JumpyBugEntity.this.canUseAmbush() && JumpyBugEntity.this.pounceCooldownTicks <= 0 + && JumpyBugEntity.this.preferPounceThisWindow && (JumpyBugEntity.this.hasLineOfSight(target) || JumpyBugEntity.this.distanceToSqr(target) <= 9.0D); } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java index 033bf901..ea348ed5 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/MantisEntity.java @@ -268,8 +268,6 @@ public class MantisEntity extends Monster implements GeoEntity { @Override public void setYBodyRot(float yBodyRot) { - // Only sync yRot from body rotation during flight — on the ground this - // conflicted with navigation and contributed to post-attack spinning if (this.isFlyingNow()) { this.setYRot(yBodyRot); } @@ -330,8 +328,6 @@ public class MantisEntity extends Monster implements GeoEntity { } private void updateFlightRotation() { - // Only override rotation during actual flight — on the ground this fought the - // navigation system, causing the mantis to spin 180° after each attack if (!this.isFlyingNow()) { return; } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java index 7a51d572..fb01ed32 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/RollyPollyEntity.java @@ -2,6 +2,7 @@ package com.craisinlord.antarchy.content.entity; import com.craisinlord.antarchy.config.AntarchySettings; import com.craisinlord.antarchy.content.AntarchyTags; +import com.craisinlord.antarchy.content.AntarchySoundEvents; import java.util.EnumSet; import net.minecraft.core.BlockPos; @@ -13,6 +14,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.BlockTags; +import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.InteractionHand; @@ -39,6 +41,7 @@ import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal; import net.minecraft.world.entity.ai.util.DefaultRandomPos; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.Level; @@ -93,6 +96,14 @@ public class RollyPollyEntity extends TamableAnimal implements GeoEntity { super(entityType, level); } + public static boolean canSpawn(EntityType entityType, net.minecraft.world.level.ServerLevelAccessor level, net.minecraft.world.entity.MobSpawnType spawnReason, BlockPos pos, net.minecraft.util.RandomSource random) { + if (spawnReason == net.minecraft.world.entity.MobSpawnType.SPAWN_EGG || spawnReason == net.minecraft.world.entity.MobSpawnType.SPAWNER || spawnReason == net.minecraft.world.entity.MobSpawnType.COMMAND) { + return true; + } + + return Mob.checkMobSpawnRules(entityType, level, spawnReason, pos, random); + } + public static AttributeSupplier.Builder createAttributes() { return Mob.createMobAttributes() .add(Attributes.MAX_HEALTH, AntarchySettings.rollyPollyHealth()) @@ -155,6 +166,9 @@ public class RollyPollyEntity extends TamableAnimal implements GeoEntity { if (this.random.nextInt(AntarchySettings.rollyPollyTameChance()) == 0) { this.setTame(true, true); this.setOwnerUUID(player.getUUID()); + if (player instanceof ServerPlayer serverPlayer) { + CriteriaTriggers.TAME_ANIMAL.trigger(serverPlayer, this); + } this.stopDefensiveCurl(); this.setTarget(null); this.level().broadcastEntityEvent(this, (byte) 7); @@ -241,14 +255,19 @@ public class RollyPollyEntity extends TamableAnimal implements GeoEntity { this.unrolling = false; this.rollTransitionTicks = ROLL_UP_TICKS; this.setAnimationState(ANIM_ROLL_UP); - this.playSound(SoundEvents.ARMOR_EQUIP_TURTLE.value(), 0.8F, 1.4F); + this.playSound(SoundEvents.ARMADILLO_ROLL, 0.8F, 1.0F); } private void startUnroll() { this.unrolling = true; this.rollTransitionTicks = UNROLL_TICKS; this.setAnimationState(ANIM_UNROLL); - this.playSound(SoundEvents.ARMOR_EQUIP_TURTLE.value(), 0.8F, 1.1F); + this.playSound(SoundEvents.ARMADILLO_UNROLL_START, 0.8F, 1.0F); + } + + @Override + protected SoundEvent getAmbientSound() { + return AntarchySoundEvents.ROLLY_POLLY_IDLE.get(); } private void stopDefensiveCurl() { diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/SpitBugEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/SpitBugEntity.java new file mode 100644 index 00000000..8950d5b9 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/SpitBugEntity.java @@ -0,0 +1,269 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.AntarchySoundEvents; +import com.craisinlord.antarchy.content.damage.AntarchyDamageSources; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.util.RandomSource; +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.FloatGoal; +import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ai.goal.LookAtPlayerGoal; +import net.minecraft.world.entity.ai.goal.MeleeAttackGoal; +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.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.phys.Vec3; +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; + +public class SpitBugEntity extends Monster implements GeoEntity { + private static final EntityDataAccessor SPIT_ANIM_TICKS = + SynchedEntityData.defineId(SpitBugEntity.class, EntityDataSerializers.INT); + private static final RawAnimation IDLE_ANIM = RawAnimation.begin().thenLoop("idle"); + private static final RawAnimation WALK_ANIM = RawAnimation.begin().thenLoop("walk"); + private static final RawAnimation SPIT_ANIM = RawAnimation.begin().thenPlay("spit"); + + private static final double MAX_HEALTH = 50.0D; + private static final double MOVEMENT_SPEED = 0.23D; + private static final double ATTACK_DAMAGE = 5.0D; + private static final double FOLLOW_RANGE = 24.0D; + private static final double SPIT_RANGE_SQR = 14.0D * 14.0D; + private static final double MELEE_RANGE_SQR = 3.5D * 3.5D; + private static final int SPIT_COOLDOWN_TICKS = 55; + private static final int SPIT_ANIMATION_TICKS = 18; + private static final int SPIT_RELEASE_TICKS = 8; + + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + private int spitCooldownTicks; + private int spitAnimationTicks; + private int spitReleaseTicks; + + public SpitBugEntity(EntityType entityType, Level level) { + super(entityType, level); + this.xpReward = 10; + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, MAX_HEALTH) + .add(Attributes.MOVEMENT_SPEED, MOVEMENT_SPEED) + .add(Attributes.ATTACK_DAMAGE, ATTACK_DAMAGE) + .add(Attributes.FOLLOW_RANGE, FOLLOW_RANGE) + .add(Attributes.ARMOR, 4.0D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0.2D); + } + + public static boolean canSpawn(EntityType entityType, ServerLevelAccessor level, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { + if (spawnReason == MobSpawnType.SPAWN_EGG || spawnReason == MobSpawnType.SPAWNER || spawnReason == MobSpawnType.COMMAND) { + return true; + } + + return level.getDifficulty() != Difficulty.PEACEFUL + && level.isEmptyBlock(pos) + && level.isEmptyBlock(pos.above()) + && Monster.checkMonsterSpawnRules(entityType, level, spawnReason, pos, random); + } + + @Override + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(SPIT_ANIM_TICKS, 0); + } + + @Override + protected void registerGoals() { + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(1, new SpitAttackGoal()); + this.goalSelector.addGoal(2, new MeleeAttackGoal(this, 1.0D, false)); + this.goalSelector.addGoal(3, new WaterAvoidingRandomStrollGoal(this, 0.9D)); + this.goalSelector.addGoal(4, new LookAtPlayerGoal(this, Player.class, 12.0F)); + this.goalSelector.addGoal(5, new RandomLookAroundGoal(this)); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this)); + this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "main_controller", 2, this::mainAnimController)); + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + @Override + public void tick() { + super.tick(); + if (this.level().isClientSide) { + return; + } + + if (this.spitCooldownTicks > 0) { + this.spitCooldownTicks--; + } + + if (this.spitAnimationTicks > 0) { + this.spitAnimationTicks--; + this.entityData.set(SPIT_ANIM_TICKS, this.spitAnimationTicks); + if (this.spitReleaseTicks > 0 && --this.spitReleaseTicks == 0) { + this.fireSpitProjectile(); + } + } + } + + @Override + public boolean doHurtTarget(net.minecraft.world.entity.Entity target) { + boolean hurt = target instanceof LivingEntity livingTarget && this.level() instanceof ServerLevel serverLevel + ? livingTarget.hurt(AntarchyDamageSources.spitBugDisrespect(serverLevel, this, this), (float) this.getAttributeValue(Attributes.ATTACK_DAMAGE)) + : super.doHurtTarget(target); + if (hurt) { + this.playSound(SoundEvents.SPIDER_HURT, 0.7F, 0.8F + this.random.nextFloat() * 0.2F); + } + return hurt; + } + + @Override + protected SoundEvent getAmbientSound() { + return AntarchySoundEvents.SPIT_BUG_IDLE.get(); + } + + @Override + protected SoundEvent getHurtSound(DamageSource damageSource) { + return AntarchySoundEvents.SPIT_BUG_HURT.get(); + } + + @Override + protected SoundEvent getDeathSound() { + return SoundEvents.SPIDER_DEATH; + } + + @Override + protected void playStepSound(BlockPos pos, BlockState blockState) { + this.playSound(SoundEvents.SPIDER_STEP, 0.18F, 0.95F); + } + + private PlayState mainAnimController(AnimationState state) { + if (this.entityData.get(SPIT_ANIM_TICKS) > 0) { + return state.setAndContinue(SPIT_ANIM); + } + return state.setAndContinue(state.isMoving() ? WALK_ANIM : IDLE_ANIM); + } + + private boolean canSpitAt(LivingEntity target) { + return this.spitCooldownTicks <= 0 + && this.spitAnimationTicks <= 0 + && this.hasLineOfSight(target) + && this.distanceToSqr(target) <= SPIT_RANGE_SQR + && this.distanceToSqr(target) > MELEE_RANGE_SQR; + } + + private void startSpitAttack() { + this.spitCooldownTicks = SPIT_COOLDOWN_TICKS; + this.spitAnimationTicks = SPIT_ANIMATION_TICKS; + this.spitReleaseTicks = SPIT_RELEASE_TICKS; + this.entityData.set(SPIT_ANIM_TICKS, this.spitAnimationTicks); + } + + @SuppressWarnings("unchecked") + private void fireSpitProjectile() { + if (!(this.level() instanceof ServerLevel serverLevel)) { + return; + } + + LivingEntity target = this.getTarget(); + if (target == null || !target.isAlive()) { + return; + } + + EntityType projectileType = (EntityType) BuiltInRegistries.ENTITY_TYPE.getOptional( + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "spit_bug_projectile") + ).orElse(null); + if (projectileType == null) { + return; + } + + SpitBugProjectileEntity projectile = new SpitBugProjectileEntity(projectileType, this, serverLevel); + Vec3 origin = this.position() + .add(0.0D, this.getBbHeight() * 0.55D, 0.0D) + .add(this.getViewVector(0.0F).scale(1.35D)); + Vec3 aimPoint = target.getEyePosition().add(target.getDeltaMovement().scale(0.45D)); + Vec3 direction = aimPoint.subtract(origin).normalize(); + + projectile.setPos(origin.x, origin.y, origin.z); + projectile.shoot(direction.x, direction.y, direction.z, 1.05F, 0.0F); + serverLevel.addFreshEntity(projectile); + this.playSound(AntarchySoundEvents.SPIT_BUG_SPIT.get(), 1.0F, 0.85F + this.random.nextFloat() * 0.15F); + } + + private final class SpitAttackGoal extends Goal { + SpitAttackGoal() { + this.setFlags(EnumSet.of(Flag.MOVE, Flag.LOOK)); + } + + @Override + public boolean canUse() { + LivingEntity target = SpitBugEntity.this.getTarget(); + return target != null && target.isAlive(); + } + + @Override + public boolean canContinueToUse() { + return this.canUse(); + } + + @Override + public void tick() { + LivingEntity target = SpitBugEntity.this.getTarget(); + if (target == null) { + return; + } + + SpitBugEntity.this.getLookControl().setLookAt(target, 30.0F, 30.0F); + + if (SpitBugEntity.this.canSpitAt(target)) { + SpitBugEntity.this.getNavigation().stop(); + SpitBugEntity.this.startSpitAttack(); + return; + } + + if (SpitBugEntity.this.distanceToSqr(target) > 36.0D || !SpitBugEntity.this.hasLineOfSight(target)) { + SpitBugEntity.this.getNavigation().moveTo(target, 1.0D); + } else { + SpitBugEntity.this.getNavigation().stop(); + } + } + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/SpitBugProjectileEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/SpitBugProjectileEntity.java new file mode 100644 index 00000000..cb4fc77e --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/SpitBugProjectileEntity.java @@ -0,0 +1,175 @@ +package com.craisinlord.antarchy.content.entity; + +import com.craisinlord.antarchy.content.damage.AntarchyDamageSources; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.network.syncher.EntityDataAccessor; +import net.minecraft.network.syncher.EntityDataSerializers; +import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.EntityHitResult; +import net.minecraft.world.phys.Vec3; + +public class SpitBugProjectileEntity extends ThrowableItemProjectile { + private static final EntityDataAccessor LINGERING = + SynchedEntityData.defineId(SpitBugProjectileEntity.class, EntityDataSerializers.BOOLEAN); + private static final int MAX_FLIGHT_TICKS = 100; + private static final int LINGER_DURATION_TICKS = 300; + private static final int DIRECT_HIT_DAMAGE = 8; + private static final float LINGER_RADIUS = 1.65F; + + private boolean lingering; + private int lingeringTicks; + + public SpitBugProjectileEntity(EntityType entityType, Level level) { + super(entityType, level); + } + + public SpitBugProjectileEntity(EntityType entityType, LivingEntity owner, Level level) { + super(entityType, owner, level); + } + + @Override + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(LINGERING, false); + } + + @Override + protected Item getDefaultItem() { + return Items.SLIME_BALL; + } + + @Override + protected double getDefaultGravity() { + return 0.03D; + } + + @Override + public boolean canBeCollidedWith() { + return false; + } + + @Override + public boolean isAttackable() { + return false; + } + + public boolean isLingering() { + return this.entityData.get(LINGERING); + } + + public float getRenderScale(float partialTick) { + if (!this.isLingering()) { + return 0.65F; + } + float progress = Math.min(1.0F, (this.lingeringTicks + partialTick) / 8.0F); + return 0.6F + progress * 0.5F; + } + + @Override + public void tick() { + if (this.isLingering()) { + this.tickLingering(); + return; + } + + super.tick(); + if (this.tickCount > MAX_FLIGHT_TICKS) { + this.discard(); + return; + } + + if (this.level().isClientSide) { + this.level().addParticle(ParticleTypes.ITEM_SLIME, this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D); + } + } + + private void tickLingering() { + this.lingeringTicks++; + this.setDeltaMovement(Vec3.ZERO); + + if (this.level().isClientSide) { + double radius = 0.4D + this.random.nextDouble() * 0.45D; + this.level().addParticle( + ParticleTypes.ITEM_SLIME, + this.getX() + (this.random.nextDouble() - 0.5D) * radius, + this.getY() + 0.04D, + this.getZ() + (this.random.nextDouble() - 0.5D) * radius, + 0.0D, + 0.0D, + 0.0D + ); + return; + } + + if (this.lingeringTicks % 4 == 0) { + this.applyLingeringSpit(); + } + + if (this.lingeringTicks >= LINGER_DURATION_TICKS) { + this.discard(); + } + } + + private void applyLingeringSpit() { + for (LivingEntity target : this.level().getEntitiesOfClass( + LivingEntity.class, + this.getBoundingBox().inflate(LINGER_RADIUS, 0.6D, LINGER_RADIUS), + entity -> entity.isAlive() && entity != this.getOwner() + )) { + target.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 30, 3, false, true, true)); + target.makeStuckInBlock(Blocks.HONEY_BLOCK.defaultBlockState(), new Vec3(0.2D, 0.0D, 0.2D)); + } + + if (this.level() instanceof ServerLevel serverLevel) { + serverLevel.sendParticles(ParticleTypes.ITEM_SLIME, this.getX(), this.getY() + 0.05D, this.getZ(), 3, 0.45D, 0.02D, 0.45D, 0.0D); + } + } + + @Override + protected void onHitEntity(EntityHitResult result) { + if (!this.level().isClientSide && result.getEntity() instanceof LivingEntity livingTarget) { + Entity owner = this.getOwner(); + if (owner instanceof SpitBugEntity && this.level() instanceof ServerLevel serverLevel) { + livingTarget.hurt(AntarchyDamageSources.spitBugDisrespect(serverLevel, this, owner), DIRECT_HIT_DAMAGE); + } else if (owner instanceof LivingEntity livingOwner) { + livingTarget.hurt(this.damageSources().mobProjectile(this, livingOwner), DIRECT_HIT_DAMAGE); + } else { + livingTarget.hurt(this.damageSources().magic(), DIRECT_HIT_DAMAGE); + } + livingTarget.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 80, 3, false, true, true)); + livingTarget.makeStuckInBlock(Blocks.HONEY_BLOCK.defaultBlockState(), new Vec3(0.25D, 0.0D, 0.25D)); + } + + this.beginLingering(result.getLocation()); + } + + @Override + protected void onHitBlock(BlockHitResult result) { + this.beginLingering(result.getLocation()); + } + + private void beginLingering(Vec3 location) { + if (this.isLingering()) { + return; + } + + this.lingering = true; + this.entityData.set(LINGERING, true); + this.lingeringTicks = 0; + this.noPhysics = true; + this.setPos(location.x, location.y + 0.05D, location.z); + this.setDeltaMovement(Vec3.ZERO); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/StinkBugEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/StinkBugEntity.java index d54e175e..eb16a6fb 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/StinkBugEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/StinkBugEntity.java @@ -1,6 +1,7 @@ package com.craisinlord.antarchy.content.entity; import com.craisinlord.antarchy.content.AntarchyObjects; +import com.craisinlord.antarchy.content.AntarchySoundEvents; import com.craisinlord.antarchy.content.StinkyBehavior; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; @@ -20,6 +21,7 @@ import net.minecraft.world.entity.ai.goal.RandomLookAroundGoal; import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal; import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.player.Player; +import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerLevelAccessor; @@ -67,7 +69,7 @@ public class StinkBugEntity extends Animal implements GeoEntity { return true; } return level.getDifficulty() != Difficulty.PEACEFUL - && Animal.checkAnimalSpawnRules(entityType, level, spawnReason, pos, random); + && Mob.checkMobSpawnRules(entityType, level, spawnReason, pos, random); } @Override @@ -86,6 +88,7 @@ public class StinkBugEntity extends Animal implements GeoEntity { if (this.fartAnimationTicks > 0) { this.fartAnimationTicks--; if (this.fartAnimationTicks == FART_RELEASE_TICKS && this.pendingFartBurst && !this.level().isClientSide()) { + this.playSound(AntarchySoundEvents.STINK_BUG_FART.get(), 0.85F, 0.9F + this.random.nextFloat() * 0.1F); StinkyBehavior.emitBurst(this, STINK_BURST_PARTICLES); StinkyBehavior.applyBurstStinkyEffect(this, STINK_BURST_RADIUS, STINK_BURST_DURATION_TICKS); this.pendingFartBurst = false; @@ -121,6 +124,11 @@ public class StinkBugEntity extends Animal implements GeoEntity { .triggerableAnim(FART_TRIGGER, FART_ANIM)); } + @Override + protected SoundEvent getAmbientSound() { + return AntarchySoundEvents.STINK_BUG_IDLE.get(); + } + @Override public AnimatableInstanceCache getAnimatableInstanceCache() { return this.geoCache; diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java index d0957941..3f28b427 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/AntTeleportHelper.java @@ -7,8 +7,10 @@ import java.util.List; import java.util.Set; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.PlayerRespawnLogic; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -98,6 +100,47 @@ public final class AntTeleportHelper { return moved instanceof Mob mob ? mob : null; } + public static InteractionResult teleportPlayerToDimension(ServerPlayer player, ResourceKey destinationKey) { + ServerLevel destination = player.server.getLevel(destinationKey); + if (destination == null) { + return InteractionResult.PASS; + } + + Vec3 destinationPos = getDestinationPosition(player, destination); + teleportPlayerWithCompanions(player, destination, destinationPos); + player.playSound(SoundEvents.ENDERMAN_TELEPORT, 1.0F, 1.0F); + return InteractionResult.CONSUME; + } + + public static InteractionResult teleportPlayerToReturnDestination(ServerPlayer player) { + ServerLevel destination = resolveReturnDestinationLevel(player); + Vec3 destinationPos = getDestinationPosition(player, destination); + teleportPlayerWithCompanions(player, destination, destinationPos); + player.playSound(SoundEvents.ENDERMAN_TELEPORT, 1.0F, 1.0F); + return InteractionResult.CONSUME; + } + + public static InteractionResult handleCagedAntTeleport(ServerPlayer player, @Nullable ResourceLocation entityTypeId, @Nullable CompoundTag entityData) { + if (entityTypeId == null) { + return InteractionResult.PASS; + } + + if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "brown_ant"))) { + return teleportPlayerToDimension(player, AntarchySettings.brownAntDestinationDimension()); + } + if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "red_ant"))) { + return teleportPlayerToDimension(player, AntarchySettings.redAntDestinationDimension()); + } + if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "termite"))) { + return teleportPlayerToDimension(player, AntarchySettings.termiteDestinationDimension()); + } + if (entityTypeId.equals(ResourceLocation.fromNamespaceAndPath("antarchy", "rainbow_ant"))) { + return RainbowAntEntity.teleportPlayerFromStoredData(player, entityData); + } + + return InteractionResult.PASS; + } + static InteractionResult handleInteraction(BaseAntEntity ant, Player player, ItemStack itemStack) { if (ant.requiresActivationReagent() && !ant.isTeleportActivatedState()) { if (!(player instanceof ServerPlayer serverPlayer)) { @@ -161,7 +204,6 @@ public final class AntTeleportHelper { return destination; } - // If the player's respawn is not in the overworld, return them to overworld spawn instead return player.server.overworld(); } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java index 8d8ecd75..5d6d37b9 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/RainbowAntEntity.java @@ -24,6 +24,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.storage.LevelResource; import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoEntity; import java.io.IOException; @@ -46,6 +47,29 @@ public class RainbowAntEntity extends BaseAntEntity implements GeoEntity { super(entityType, level); } + public static InteractionResult teleportPlayerFromStoredData(ServerPlayer player, @Nullable CompoundTag entityData) { + if (!AntarchySettings.rainbowAntsLeadToInfinityDimensions() || !InfinityCompat.get().isAvailable()) { + return AntTeleportHelper.teleportPlayerToDimension(player, AntarchySettings.rainbowAntNonInfinityFallbackDimension()); + } + + if (INFINITY_NAMESPACE.equals(player.serverLevel().dimension().location().getNamespace())) { + return AntTeleportHelper.teleportPlayerToReturnDestination(player); + } + + ResourceLocation dimensionId = parseStoredDimensionId(entityData); + if (dimensionId == null) { + return AntTeleportHelper.teleportPlayerToDimension(player, AntarchySettings.rainbowAntNonInfinityFallbackDimension()); + } + + if (!InfinityCompat.get().requestWarp(player, dimensionId)) { + player.displayClientMessage(Component.translatable("message.antarchy.rainbow_ant_failed_dimension_create"), true); + return InteractionResult.CONSUME; + } + + player.playSound(SoundEvents.ENDERMAN_TELEPORT, 1.0F, 1.0F); + return InteractionResult.CONSUME; + } + @Override public boolean requiresCustomPersistence() { return this.hasActiveInfinityDestination() || super.requiresCustomPersistence(); @@ -281,6 +305,20 @@ public class RainbowAntEntity extends BaseAntEntity implements GeoEntity { } } + @Nullable + private static ResourceLocation parseStoredDimensionId(@Nullable CompoundTag entityData) { + if (entityData == null || !entityData.contains(DIMENSION_ID_TAG)) { + return null; + } + + try { + String storedDimensionId = entityData.getString(DIMENSION_ID_TAG); + return storedDimensionId.isEmpty() ? null : ResourceLocation.parse(storedDimensionId); + } catch (Throwable throwable) { + return null; + } + } + private boolean teleportToInfinity(ServerPlayer player, ResourceLocation dimensionId) { if (!InfinityCompat.get().requestWarp(player, dimensionId)) { this.deleteGeneratedArtifacts(player.server, dimensionId); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java index a2cff0a2..db9126ed 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/ant/TermiteEntity.java @@ -14,6 +14,7 @@ import net.minecraft.world.level.GameRules; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.pathfinder.Path; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; import software.bernie.geckolib.animatable.GeoEntity; @@ -149,7 +150,7 @@ public class TermiteEntity extends BaseAntEntity implements GeoEntity { @Nullable private BlockPos getCurrentWoodTarget() { - if (this.targetWoodPos != null && this.isValidWoodTarget(this.targetWoodPos)) { + if (this.targetWoodPos != null && this.isValidWoodTarget(this.targetWoodPos) && this.canReachWoodTarget(this.targetWoodPos)) { return this.targetWoodPos; } @@ -221,28 +222,44 @@ public class TermiteEntity extends BaseAntEntity implements GeoEntity { return this.level().getBlockState(targetPos).is(AntarchyTags.Blocks.TERMITE_FOODS); } + private boolean canReachWoodTarget(BlockPos targetPos) { + BlockPos approachPos = this.getWoodApproachBlockPos(targetPos); + if (approachPos == null) { + return false; + } + + Path path = this.getNavigation().createPath(approachPos, 0); + return path != null && path.canReach(); + } + @Nullable - private Vec3 getWoodApproachTarget(BlockPos targetPos) { + private BlockPos getWoodApproachBlockPos(BlockPos targetPos) { BlockPos belowTarget = targetPos.below(); if (this.isWalkableStandPos(belowTarget)) { - return Vec3.atBottomCenterOf(belowTarget); + return belowTarget; } for (Direction direction : Direction.Plane.HORIZONTAL) { BlockPos sidePos = targetPos.relative(direction); if (this.isWalkableStandPos(sidePos)) { - return Vec3.atBottomCenterOf(sidePos); + return sidePos; } BlockPos belowSidePos = sidePos.below(); if (this.isWalkableStandPos(belowSidePos)) { - return Vec3.atBottomCenterOf(belowSidePos); + return belowSidePos; } } return null; } + @Nullable + private Vec3 getWoodApproachTarget(BlockPos targetPos) { + BlockPos approachPos = this.getWoodApproachBlockPos(targetPos); + return approachPos == null ? null : Vec3.atBottomCenterOf(approachPos); + } + private boolean isWalkableStandPos(BlockPos pos) { BlockPos floor = pos.below(); BlockState floorState = this.level().getBlockState(floor); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java index 295ede68..d233c67b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/brutalfly/BrutalflyEntity.java @@ -496,6 +496,7 @@ public class BrutalflyEntity extends Monster implements GeoEntity { } Vec3 origin = this.getSpitOrigin(); + this.playSound(AntarchySoundEvents.BRUTALFLY_SPIT.get(), 1.0F, 0.9F + this.random.nextFloat() * 0.2F); switch (this.getFightPhase()) { case PHASE_THREE -> { this.launchOrb(serverLevel, origin, target, BrutalflyOrbEntity.OrbVariant.POISON, -8.0F); diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java index 20ae6187..45df06db 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerAntBehavior.java @@ -57,7 +57,7 @@ public class GlimmerAntBehavior implements GlimmerVariantBehavior { @Override public ResourceLocation emissiveTexture(GlimmerEntity entity) { - return rl("textures/entity/glimmer/glimmer_ant_emmisive.png"); + return rl("textures/entity/glimmer/glimmer_ant_emissive.png"); } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerElkaBehavior.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerElkaBehavior.java index e573d0f4..a840fd40 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerElkaBehavior.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerElkaBehavior.java @@ -60,7 +60,7 @@ public class GlimmerElkaBehavior implements GlimmerVariantBehavior { @Override public ResourceLocation emissiveTexture(GlimmerEntity entity) { - return rl("textures/entity/glimmer/elka_glimmer_emmisive.png"); + return rl("textures/entity/glimmer/elka_glimmer_emissive.png"); } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java index 257cd340..3768123f 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/glimmer/GlimmerFrogBehavior.java @@ -91,7 +91,7 @@ public class GlimmerFrogBehavior implements GlimmerVariantBehavior { @Override public ResourceLocation emissiveTexture(GlimmerEntity entity) { - return rl("textures/entity/glimmer/frog_glimmer_emmisive.png"); + return rl("textures/entity/glimmer/frog_glimmer_emissive.png"); } @Override diff --git a/common/src/main/java/com/craisinlord/antarchy/content/item/AttitudeAdjusterItem.java b/common/src/main/java/com/craisinlord/antarchy/content/item/AttitudeAdjusterItem.java new file mode 100644 index 00000000..1e361532 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/item/AttitudeAdjusterItem.java @@ -0,0 +1,97 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.config.AntarchySettings; +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SwordItem; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.item.component.ItemAttributeModifiers; +import net.minecraft.world.level.Level; + +public class AttitudeAdjusterItem extends SwordItem { + private static final float ATTACK_SPEED = -3.6F; + private static final int USE_DURATION = 12; + private final Tier tier; + + public AttitudeAdjusterItem(Tier tier, Item.Properties properties) { + super(tier, properties); + this.tier = tier; + } + + @Override + public ItemAttributeModifiers getDefaultAttributeModifiers() { + return SwordItem.createAttributes( + this.tier, + (int) Math.round(AntarchySettings.attitudeAdjusterBaseDamage()), + ATTACK_SPEED + ); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipComponents, TooltipFlag tooltipFlag) { + tooltipComponents.add(Component.translatable("tooltip.antarchy.attitude_adjuster.grounded").withStyle(ChatFormatting.DARK_GRAY)); + tooltipComponents.add(Component.translatable("tooltip.antarchy.attitude_adjuster.slam").withStyle(ChatFormatting.YELLOW)); + super.appendHoverText(stack, context, tooltipComponents, tooltipFlag); + } + + @Override + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + boolean hurt = super.hurtEnemy(stack, target, attacker); + if (!hurt || !(attacker instanceof Player player) || attacker.level().isClientSide || player.getMainHandItem() != stack || !(attacker.level() instanceof ServerLevel serverLevel)) { + return hurt; + } + if (!AttitudeAdjusterSlamManager.consumeSpecialHit(player)) { + return hurt; + } + if (target.onGround()) { + AttitudeAdjusterSlamManager.onGroundedHit(serverLevel, player, target); + } else { + AttitudeAdjusterSlamManager.onAirborneHit(serverLevel, player, target); + } + return hurt; + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + if (!(player instanceof ServerPlayer serverPlayer) || serverPlayer.getCooldowns().isOnCooldown(this)) { + return InteractionResultHolder.pass(stack); + } + if (!AttitudeAdjusterSlamManager.tryStartPlayerSlam(serverPlayer, hand)) { + return InteractionResultHolder.pass(stack); + } + return InteractionResultHolder.sidedSuccess(stack, level.isClientSide); + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return stack.getCount() == 1; + } + + @Override + public boolean canAttackBlock(net.minecraft.world.level.block.state.BlockState state, Level level, net.minecraft.core.BlockPos pos, Player miner) { + return !miner.isCreative(); + } + + @Override + public int getUseDuration(ItemStack stack, LivingEntity entity) { + return USE_DURATION; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.SPEAR; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/item/AttitudeAdjusterSlamManager.java b/common/src/main/java/com/craisinlord/antarchy/content/item/AttitudeAdjusterSlamManager.java new file mode 100644 index 00000000..68a9201b --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/item/AttitudeAdjusterSlamManager.java @@ -0,0 +1,311 @@ +package com.craisinlord.antarchy.content.item; + +import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.network.ImpactShakePayload; +import com.craisinlord.antarchy.content.network.ImpactShakeSync; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.BlockParticleOption; +import net.minecraft.core.particles.DustParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.projectile.Projectile; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.gameevent.GameEvent; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.Vec3; +import org.joml.Vector3f; + +public final class AttitudeAdjusterSlamManager { + private static final int SLAM_TIMEOUT_TICKS = 40; + private static final int PLAYER_SLAM_COOLDOWN_TICKS = 28; + private static final double GROUNDED_VERTICAL_KNOCKBACK = 1.35D; + private static final double GROUNDED_HORIZONTAL_KNOCKBACK = 0.5D; + private static final double AIRBORNE_SLAM_DOWNWARD_VELOCITY = -1.8D; + private static final double SLAM_BONUS_DAMAGE_SCALE = 10.0D; + private static final double SLAM_MAX_BONUS_DAMAGE = 18.0D; + private static final double SLAM_IMPACT_RADIUS = 3.75D; + private static final double SLAM_RADIAL_KNOCKBACK = 0.55D; + private static final double PLAYER_SLAM_START_VELOCITY = -2.15D; + private static final double PLAYER_SLAM_RADIUS = 4.75D; + private static final double PLAYER_SLAM_BASE_DAMAGE = 12.0D; + private static final double PLAYER_SLAM_DAMAGE_SCALE = 0.85D; + private static final double PLAYER_SLAM_MAX_DAMAGE = 24.0D; + private static final double PLAYER_SLAM_UPWARD_KNOCKBACK = 0.9D; + private static final double PLAYER_SLAM_HORIZONTAL_KNOCKBACK = 0.9D; + private static final float NORMAL_SHAKE_INTENSITY = 0.5F; + private static final int NORMAL_SHAKE_DURATION = 10; + private static final float ENEMY_SLAM_SHAKE_INTENSITY = 0.95F; + private static final int ENEMY_SLAM_SHAKE_DURATION = 16; + private static final float PLAYER_SLAM_SHAKE_INTENSITY = 1.2F; + private static final int PLAYER_SLAM_SHAKE_DURATION = 20; + private static final float IMPACT_SHAKE_RADIUS = 24.0F; + private static final float NORMAL_BREAK_HARDNESS_LIMIT = 6.0F; + private static final int MAX_BROKEN_BLOCKS = 9; + private static final Map SLAMMED_TARGETS = new HashMap<>(); + private static final Map PLAYER_SLAMS = new HashMap<>(); + private static final Map SPECIAL_HIT_MARKS = new HashMap<>(); + + private AttitudeAdjusterSlamManager() { + } + + public static void markSpecialHit(Player player) { + SPECIAL_HIT_MARKS.put(player.getUUID(), player.level().getGameTime()); + } + + public static boolean consumeSpecialHit(Player player) { + Long markedTime = SPECIAL_HIT_MARKS.get(player.getUUID()); + if (markedTime == null || markedTime != player.level().getGameTime()) { + return false; + } + SPECIAL_HIT_MARKS.remove(player.getUUID()); + return true; + } + + public static void onGroundedHit(ServerLevel level, Player attacker, LivingEntity target) { + Vec3 push = horizontalAway(attacker.position(), target.position(), attacker.getLookAngle()).scale(GROUNDED_HORIZONTAL_KNOCKBACK); + double resistanceScale = resistanceScale(target); + Vec3 motion = target.getDeltaMovement().add(push.x * resistanceScale, Math.max(GROUNDED_VERTICAL_KNOCKBACK * resistanceScale, 0.45D), push.z * resistanceScale); + target.setDeltaMovement(motion); + target.hurtMarked = true; + playNormalImpact(level, target.position().add(0.0D, target.getBbHeight() * 0.5D, 0.0D), target.getOnPosLegacy()); + } + + public static void onAirborneHit(ServerLevel level, Player attacker, LivingEntity target) { + Vec3 push = horizontalAway(attacker.position(), target.position(), attacker.getLookAngle()).scale(0.18D); + target.setDeltaMovement(push.x, Math.min(target.getDeltaMovement().y, AIRBORNE_SLAM_DOWNWARD_VELOCITY), push.z); + target.hurtMarked = true; + SLAMMED_TARGETS.put(target.getUUID(), new SlammedTargetState( + target.getUUID(), + attacker.getUUID(), + level.dimension().location().toString(), + level.getGameTime() + SLAM_TIMEOUT_TICKS, + target.getDeltaMovement().y, + target.fallDistance + )); + level.playSound(null, target.getX(), target.getY(), target.getZ(), SoundEvents.ANVIL_LAND, SoundSource.PLAYERS, 1.0F, 0.7F); + } + + public static boolean tryStartPlayerSlam(ServerPlayer player, net.minecraft.world.InteractionHand hand) { + if (player.onGround() || player.isInWaterOrBubble() || player.isInLava() || player.isFallFlying() || player.getAbilities().flying || PLAYER_SLAMS.containsKey(player.getUUID())) { + return false; + } + PLAYER_SLAMS.put(player.getUUID(), new PlayerSlamState(player.getUUID(), player.serverLevel().dimension().location().toString(), player.serverLevel().getGameTime() + SLAM_TIMEOUT_TICKS, player.fallDistance)); + Vec3 motion = player.getDeltaMovement(); + player.setDeltaMovement(motion.x * 0.25D, PLAYER_SLAM_START_VELOCITY, motion.z * 0.25D); + player.hurtMarked = true; + player.fallDistance = 0.0F; + player.swing(hand, true); + player.serverLevel().playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.MACE_SMASH_AIR, SoundSource.PLAYERS, 1.0F, 0.8F); + return true; + } + + public static void tick(ServerLevel level) { + tickSlammedTargets(level); + tickPlayerSlams(level); + } + + private static void tickSlammedTargets(ServerLevel level) { + Iterator iterator = SLAMMED_TARGETS.values().iterator(); + while (iterator.hasNext()) { + SlammedTargetState state = iterator.next(); + if (!state.dimensionId.equals(level.dimension().location().toString())) { + continue; + } + Entity entity = level.getEntity(state.targetId); + if (!(entity instanceof LivingEntity target) || !target.isAlive() || level.getGameTime() > state.expiresAt || target.isInWaterOrBubble() || target.isInLava() || target.isFallFlying() || (target instanceof Player player && player.getAbilities().flying)) { + iterator.remove(); + continue; + } + if (!target.onGround()) { + continue; + } + Player attacker = level.getPlayerByUUID(state.attackerId); + double impactSpeed = Math.max(Math.abs(Math.min(target.getDeltaMovement().y, state.startDownwardVelocity)), Math.max(0.0D, target.fallDistance * 0.125D)); + float bonusDamage = (float) Mth.clamp(impactSpeed * SLAM_BONUS_DAMAGE_SCALE, 4.0D, SLAM_MAX_BONUS_DAMAGE); + if (attacker != null) { + target.hurt(level.damageSources().playerAttack(attacker), bonusDamage); + } else { + target.hurt(level.damageSources().generic(), bonusDamage); + } + Vec3 impactPos = target.position(); + BlockPos groundPos = target.getOnPosLegacy(); + playSlamImpact(level, impactPos, groundPos, true); + knockbackNearby(level, impactPos, target, SLAM_IMPACT_RADIUS, SLAM_RADIAL_KNOCKBACK, 0.3D); + iterator.remove(); + } + } + + private static void tickPlayerSlams(ServerLevel level) { + Iterator iterator = PLAYER_SLAMS.values().iterator(); + while (iterator.hasNext()) { + PlayerSlamState state = iterator.next(); + if (!state.dimensionId.equals(level.dimension().location().toString())) { + continue; + } + Player entity = level.getPlayerByUUID(state.playerId); + if (!(entity instanceof ServerPlayer player) || !player.isAlive() || level.getGameTime() > state.expiresAt || player.isInWaterOrBubble() || player.isInLava() || player.isFallFlying() || player.getAbilities().flying) { + iterator.remove(); + continue; + } + player.fallDistance = 0.0F; + if (!player.onGround()) { + continue; + } + Vec3 impactPos = player.position(); + BlockPos groundPos = player.getOnPosLegacy(); + double impactStrength = Math.max(Math.abs(Math.min(player.getDeltaMovement().y, PLAYER_SLAM_START_VELOCITY)), Math.max(state.startFallDistance, player.fallDistance) * 0.15D); + float damage = (float) Mth.clamp(PLAYER_SLAM_BASE_DAMAGE + impactStrength * PLAYER_SLAM_DAMAGE_SCALE * 10.0D, PLAYER_SLAM_BASE_DAMAGE, PLAYER_SLAM_MAX_DAMAGE); + AABB area = new AABB(impactPos.x - PLAYER_SLAM_RADIUS, impactPos.y - 1.5D, impactPos.z - PLAYER_SLAM_RADIUS, impactPos.x + PLAYER_SLAM_RADIUS, impactPos.y + 2.5D, impactPos.z + PLAYER_SLAM_RADIUS); + for (LivingEntity target : level.getEntitiesOfClass(LivingEntity.class, area, candidate -> candidate.isAlive() && candidate != player)) { + if (!target.hurt(level.damageSources().playerAttack(player), damage)) { + continue; + } + Vec3 away = horizontalAway(impactPos, target.position(), player.getLookAngle()).scale(PLAYER_SLAM_HORIZONTAL_KNOCKBACK); + double resistanceScale = resistanceScale(target); + target.setDeltaMovement(target.getDeltaMovement().add(away.x * resistanceScale, Math.max(PLAYER_SLAM_UPWARD_KNOCKBACK * resistanceScale, 0.35D), away.z * resistanceScale)); + target.hurtMarked = true; + } + playSlamImpact(level, impactPos, groundPos, false); + if (AntarchySettings.attitudeAdjusterBreaksBlocks()) { + breakBlocks(level, player, groundPos); + } + if (player.getMainHandItem().getItem() instanceof AttitudeAdjusterItem item) { + player.getCooldowns().addCooldown(item, PLAYER_SLAM_COOLDOWN_TICKS); + } + iterator.remove(); + } + } + + private static void breakBlocks(ServerLevel level, ServerPlayer player, BlockPos center) { + int broken = 0; + for (int y = -1; y <= 0 && broken < MAX_BROKEN_BLOCKS; y++) { + for (int x = -1; x <= 1 && broken < MAX_BROKEN_BLOCKS; x++) { + for (int z = -1; z <= 1 && broken < MAX_BROKEN_BLOCKS; z++) { + BlockPos pos = center.offset(x, y, z); + BlockState state = level.getBlockState(pos); + BlockEntity blockEntity = level.getBlockEntity(pos); + if (state.isAir() || blockEntity != null || state.getDestroySpeed(level, pos) < 0.0F || state.getDestroySpeed(level, pos) > NORMAL_BREAK_HARDNESS_LIMIT) { + continue; + } + if (!state.isFaceSturdy(level, pos, Direction.UP) && pos.getY() < center.getY()) { + continue; + } + if (player.gameMode.destroyBlock(pos)) { + broken++; + } + } + } + } + } + + private static void playNormalImpact(ServerLevel level, Vec3 impactPos, BlockPos groundPos) { + level.playSound(null, impactPos.x, impactPos.y, impactPos.z, SoundEvents.MACE_SMASH_GROUND_HEAVY, SoundSource.PLAYERS, 0.95F, 0.75F); + spawnImpactParticles(level, impactPos, groundPos, 10, 20); + shake(level, impactPos, NORMAL_SHAKE_INTENSITY, NORMAL_SHAKE_DURATION); + } + + private static void playSlamImpact(ServerLevel level, Vec3 impactPos, BlockPos groundPos, boolean enemySlam) { + level.playSound(null, impactPos.x, impactPos.y, impactPos.z, enemySlam ? SoundEvents.GENERIC_EXPLODE.value() : SoundEvents.MACE_SMASH_GROUND, SoundSource.PLAYERS, enemySlam ? 1.2F : 1.35F, enemySlam ? 0.65F : 0.55F); + spawnImpactParticles(level, impactPos, groundPos, enemySlam ? 20 : 28, enemySlam ? 32 : 42); + spawnShockwaveParticles(level, impactPos, enemySlam ? 18 : 28); + shake(level, impactPos, enemySlam ? ENEMY_SLAM_SHAKE_INTENSITY : PLAYER_SLAM_SHAKE_INTENSITY, enemySlam ? ENEMY_SLAM_SHAKE_DURATION : PLAYER_SLAM_SHAKE_DURATION); + level.gameEvent(GameEvent.EXPLODE, impactPos, GameEvent.Context.of(level.getBlockState(groundPos))); + } + + private static void spawnImpactParticles(ServerLevel level, Vec3 impactPos, BlockPos groundPos, int dustCount, int debrisCount) { + level.sendParticles(new DustParticleOptions(new Vector3f(1.00F, 0.92F, 0.18F), 1.35F), impactPos.x, impactPos.y + 0.1D, impactPos.z, dustCount, 0.45D, 0.15D, 0.45D, 0.035D); + BlockState groundState = level.getBlockState(groundPos); + if (!groundState.isAir()) { + level.sendParticles(new BlockParticleOption(ParticleTypes.BLOCK, groundState), impactPos.x, impactPos.y + 0.05D, impactPos.z, debrisCount, 0.7D, 0.15D, 0.7D, 0.06D); + } + level.sendParticles(ParticleTypes.POOF, impactPos.x, impactPos.y + 0.2D, impactPos.z, 8, 0.45D, 0.05D, 0.45D, 0.02D); + } + + private static void spawnShockwaveParticles(ServerLevel level, Vec3 impactPos, int count) { + for (int i = 0; i < count; i++) { + double angle = (Math.PI * 2.0D * i) / count; + double x = impactPos.x + Math.cos(angle) * 0.6D; + double z = impactPos.z + Math.sin(angle) * 0.6D; + double dx = Math.cos(angle) * 0.18D; + double dz = Math.sin(angle) * 0.18D; + level.sendParticles(new DustParticleOptions(new Vector3f(1.00F, 0.85F, 0.22F), 0.95F), x, impactPos.y + 0.05D, z, 1, dx, 0.01D, dz, 0.0D); + } + } + + private static void knockbackNearby(ServerLevel level, Vec3 center, LivingEntity ignored, double radius, double horizontalStrength, double verticalStrength) { + AABB area = new AABB(center.x - radius, center.y - 1.5D, center.z - radius, center.x + radius, center.y + 2.5D, center.z + radius); + for (LivingEntity entity : level.getEntitiesOfClass(LivingEntity.class, area, candidate -> candidate.isAlive() && candidate != ignored)) { + Vec3 away = horizontalAway(center, entity.position(), entity.getLookAngle()).scale(horizontalStrength); + double resistanceScale = resistanceScale(entity); + entity.setDeltaMovement(entity.getDeltaMovement().add(away.x * resistanceScale, Math.max(verticalStrength * resistanceScale, 0.1D), away.z * resistanceScale)); + entity.hurtMarked = true; + } + } + + private static void shake(ServerLevel level, Vec3 pos, float intensity, int durationTicks) { + ImpactShakePayload payload = new ImpactShakePayload(pos.x, pos.y, pos.z, intensity, durationTicks, IMPACT_SHAKE_RADIUS); + double radiusSqr = IMPACT_SHAKE_RADIUS * IMPACT_SHAKE_RADIUS; + for (ServerPlayer player : level.players()) { + if (player.distanceToSqr(pos.x, pos.y, pos.z) <= radiusSqr) { + ImpactShakeSync.send(player, payload); + } + } + } + + private static Vec3 horizontalAway(Vec3 from, Vec3 to, Vec3 fallback) { + Vec3 horizontal = to.subtract(from).multiply(1.0D, 0.0D, 1.0D); + if (horizontal.lengthSqr() < 1.0E-4D) { + horizontal = fallback.multiply(1.0D, 0.0D, 1.0D); + } + return horizontal.lengthSqr() < 1.0E-4D ? new Vec3(1.0D, 0.0D, 0.0D) : horizontal.normalize(); + } + + private static double resistanceScale(LivingEntity entity) { + return Mth.clamp(1.0D - entity.getAttributeValue(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE), 0.15D, 1.0D); + } + + private static final class SlammedTargetState { + private final UUID targetId; + private final UUID attackerId; + private final String dimensionId; + private final long expiresAt; + private final double startDownwardVelocity; + private final float startFallDistance; + + private SlammedTargetState(UUID targetId, UUID attackerId, String dimensionId, long expiresAt, double startDownwardVelocity, float startFallDistance) { + this.targetId = targetId; + this.attackerId = attackerId; + this.dimensionId = dimensionId; + this.expiresAt = expiresAt; + this.startDownwardVelocity = startDownwardVelocity; + this.startFallDistance = startFallDistance; + } + } + + private static final class PlayerSlamState { + private final UUID playerId; + private final String dimensionId; + private final long expiresAt; + private final float startFallDistance; + + private PlayerSlamState(UUID playerId, String dimensionId, long expiresAt, float startFallDistance) { + this.playerId = playerId; + this.dimensionId = dimensionId; + this.expiresAt = expiresAt; + this.startFallDistance = startFallDistance; + } + } +} 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 index 7f6c85f9..c9d14b47 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/item/PrimordialArmorItem.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/item/PrimordialArmorItem.java @@ -27,7 +27,7 @@ public class PrimordialArmorItem extends ArmorItem { private final Type armorType; public PrimordialArmorItem(Holder material, Type type, Properties properties) { - super(material, type, properties); + super(material, type, properties.stacksTo(1).durability(resolveDurability(type))); this.armorType = type; } @@ -141,4 +141,13 @@ public class PrimordialArmorItem extends ArmorItem { case BOOTS -> 0.20D; }; } + + private static int resolveDurability(Type armorType) { + return switch (armorType) { + case HELMET -> Type.HELMET.getDurability(37); + case CHESTPLATE, BODY -> Type.CHESTPLATE.getDurability(37); + case LEGGINGS -> Type.LEGGINGS.getDurability(37); + case BOOTS -> Type.BOOTS.getDurability(37); + }; + } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/network/ImpactShakePayload.java b/common/src/main/java/com/craisinlord/antarchy/content/network/ImpactShakePayload.java new file mode 100644 index 00000000..25f1c213 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/network/ImpactShakePayload.java @@ -0,0 +1,33 @@ +package com.craisinlord.antarchy.content.network; + +import com.craisinlord.antarchy.Antarchy; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public record ImpactShakePayload(double x, double y, double z, float intensity, int durationTicks, float radius) implements CustomPacketPayload { + public static final Type TYPE = + new Type<>(ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "impact_shake")); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.DOUBLE, + ImpactShakePayload::x, + ByteBufCodecs.DOUBLE, + ImpactShakePayload::y, + ByteBufCodecs.DOUBLE, + ImpactShakePayload::z, + ByteBufCodecs.FLOAT, + ImpactShakePayload::intensity, + ByteBufCodecs.VAR_INT, + ImpactShakePayload::durationTicks, + ByteBufCodecs.FLOAT, + ImpactShakePayload::radius, + ImpactShakePayload::new + ); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/network/ImpactShakeSync.java b/common/src/main/java/com/craisinlord/antarchy/content/network/ImpactShakeSync.java new file mode 100644 index 00000000..dbd437b9 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/network/ImpactShakeSync.java @@ -0,0 +1,21 @@ +package com.craisinlord.antarchy.content.network; + +import java.util.function.BiConsumer; +import net.minecraft.server.level.ServerPlayer; + +public final class ImpactShakeSync { + private static final BiConsumer NOOP = (player, payload) -> { + }; + private static volatile BiConsumer sink = NOOP; + + private ImpactShakeSync() { + } + + public static void setSink(BiConsumer sink) { + ImpactShakeSync.sink = sink == null ? NOOP : sink; + } + + public static void send(ServerPlayer player, ImpactShakePayload payload) { + sink.accept(player, payload); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/portal/PermanentPortalTeleporter.java b/common/src/main/java/com/craisinlord/antarchy/content/portal/PermanentPortalTeleporter.java index a6c968a0..c7b3450b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/portal/PermanentPortalTeleporter.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/portal/PermanentPortalTeleporter.java @@ -220,23 +220,31 @@ public final class PermanentPortalTeleporter { BlockPos preferred = BlockPos.containing(safePos); int minY = destination.getMinBuildHeight() + 2; int maxY = destination.getMaxBuildHeight() - 4; - int clampedY = Mth.clamp(preferred.getY(), minY, maxY); + int startY = Mth.clamp(preferred.getY(), minY, maxY); - for (int radius = 0; radius <= 4; radius++) { - for (int xOff = -radius; xOff <= radius; xOff++) { - for (int zOff = -radius; zOff <= radius; zOff++) { - if (radius > 0 && Math.abs(xOff) != radius && Math.abs(zOff) != radius) { - continue; - } + for (int yOff = 0; yOff <= 6; yOff++) { + for (int y : new int[]{startY + yOff, startY - yOff}) { + if (y < minY || y > maxY) { + continue; + } - BlockPos anchor = new BlockPos(preferred.getX() + xOff, clampedY, preferred.getZ() + zOff); - PermanentPortalShape xShape = PermanentPortalShape.create(destination, anchor, type, Direction.Axis.X); - if (xShape != null) { - return xShape; - } - PermanentPortalShape zShape = PermanentPortalShape.create(destination, anchor, type, Direction.Axis.Z); - if (zShape != null) { - return zShape; + for (int radius = 0; radius <= 4; radius++) { + for (int xOff = -radius; xOff <= radius; xOff++) { + for (int zOff = -radius; zOff <= radius; zOff++) { + if (radius > 0 && Math.abs(xOff) != radius && Math.abs(zOff) != radius) { + continue; + } + + BlockPos anchor = new BlockPos(preferred.getX() + xOff, y, preferred.getZ() + zOff); + PermanentPortalShape xShape = PermanentPortalShape.create(destination, anchor, type, Direction.Axis.X); + if (xShape != null) { + return xShape; + } + PermanentPortalShape zShape = PermanentPortalShape.create(destination, anchor, type, Direction.Axis.Z); + if (zShape != null) { + return zShape; + } + } } } } diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/HangingCreeprootsFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/HangingCreeprootsFeature.java new file mode 100644 index 00000000..7edbc14e --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/HangingCreeprootsFeature.java @@ -0,0 +1,109 @@ +package com.craisinlord.antarchy.content.worldgen.cavaryn; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.HangingCreeprootsBlock; +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class HangingCreeprootsFeature extends Feature { + private static final ResourceLocation HANGING_CREEPROOTS_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "hanging_creeproots"); + private static final int SEARCH_RADIUS = 8; + private static final int SEARCH_ATTEMPTS = 24; + private static final int VERTICAL_SCAN = 12; + + public HangingCreeprootsFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + Block block = getBlock(HANGING_CREEPROOTS_ID); + if (!(block instanceof HangingCreeprootsBlock rootsBlock)) { + return false; + } + + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + BlockPos anchor = findAnchor(level, context.origin(), random); + if (anchor == null) { + return false; + } + + return placeColumn(level, rootsBlock, anchor, random); + } + + private static BlockPos findAnchor(WorldGenLevel level, BlockPos origin, RandomSource random) { + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + for (int attempt = 0; attempt < SEARCH_ATTEMPTS; attempt++) { + int x = origin.getX() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int z = origin.getZ() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int startY = origin.getY() + random.nextInt(VERTICAL_SCAN * 2 + 1) - VERTICAL_SCAN; + startY = Math.max(level.getMinBuildHeight() + 3, Math.min(level.getMaxBuildHeight() - 3, startY)); + + for (int y = startY; y <= Math.min(level.getMaxBuildHeight() - 2, startY + VERTICAL_SCAN); y++) { + mutable.set(x, y, z); + if (!level.getBlockState(mutable).canBeReplaced()) { + continue; + } + + BlockPos abovePos = mutable.above(); + BlockState aboveState = level.getBlockState(abovePos); + if (aboveState.isFaceSturdy(level, abovePos, net.minecraft.core.Direction.DOWN)) { + return mutable.immutable(); + } + } + } + + return null; + } + + private static boolean placeColumn(WorldGenLevel level, HangingCreeprootsBlock rootsBlock, BlockPos startPos, RandomSource random) { + boolean placedAny = false; + int length = 1 + random.nextInt(5); + + for (int offset = 0; offset < length; offset++) { + BlockPos rootsPos = startPos.below(offset); + if (rootsPos.getY() <= level.getMinBuildHeight()) { + break; + } + + BlockState existing = level.getBlockState(rootsPos); + if (!existing.canBeReplaced() && !existing.is(rootsBlock)) { + break; + } + + int distance = Math.min(offset, 4); + boolean bottom = offset == length - 1 || !level.getBlockState(rootsPos.below()).canBeReplaced(); + BlockState state = rootsBlock.defaultBlockState() + .setValue(HangingCreeprootsBlock.DISTANCE, distance) + .setValue(HangingCreeprootsBlock.BOTTOM, bottom); + if (!state.canSurvive(level, rootsPos)) { + break; + } + + level.setBlock(rootsPos, state, 3); + placedAny = true; + if (!bottom && !level.getBlockState(rootsPos.below()).canBeReplaced()) { + level.setBlock(rootsPos, state.setValue(HangingCreeprootsBlock.BOTTOM, true), 3); + break; + } + } + + return placedAny; + } + + private static Block getBlock(ResourceLocation id) { + Optional block = BuiltInRegistries.BLOCK.getOptional(id); + return block.orElse(null); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java new file mode 100644 index 00000000..ba89077b --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/JumpyBugEggCeilingFeature.java @@ -0,0 +1,82 @@ +package com.craisinlord.antarchy.content.worldgen.cavaryn; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.JumpyBugEggBlock; +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class JumpyBugEggCeilingFeature extends Feature { + private static final ResourceLocation JUMPY_BUG_EGG_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jumpy_bug_egg"); + private static final int SEARCH_RADIUS = 8; + private static final int VERTICAL_SCAN = 6; + private static final int SEARCH_ATTEMPTS = 10; + private static final float PLACE_CHANCE = 0.5F; + + public JumpyBugEggCeilingFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + Block eggBlock = getBlock(JUMPY_BUG_EGG_ID); + if (eggBlock == null) { + return false; + } + + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + BlockPos origin = context.origin(); + + boolean placedAny = false; + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + for (int attempt = 0; attempt < SEARCH_ATTEMPTS; attempt++) { + if (random.nextFloat() > PLACE_CHANCE) { + continue; + } + + int x = origin.getX() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int z = origin.getZ() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int y = origin.getY() + random.nextInt(VERTICAL_SCAN * 2 + 1) - VERTICAL_SCAN; + mutable.set(x, y, z); + + if (!isValidCeilingSpot(level, mutable)) { + continue; + } + + BlockState eggState = eggBlock.defaultBlockState() + .setValue(JumpyBugEggBlock.HANGING, true) + .setValue(JumpyBugEggBlock.ROTATED, random.nextBoolean()); + level.setBlock(mutable, eggState, 3); + placedAny = true; + } + + return placedAny; + } + + private static boolean isValidCeilingSpot(WorldGenLevel level, BlockPos pos) { + BlockState state = level.getBlockState(pos); + if (!state.isAir()) { + return false; + } + + BlockPos abovePos = pos.above(); + BlockState aboveState = level.getBlockState(abovePos); + return aboveState.isFaceSturdy(level, abovePos, Direction.DOWN); + } + + private static Block getBlock(ResourceLocation id) { + Optional block = BuiltInRegistries.BLOCK.getOptional(id); + return block.orElse(null); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/MoltingVinesFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/MoltingVinesFeature.java new file mode 100644 index 00000000..dd674cab --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/MoltingVinesFeature.java @@ -0,0 +1,118 @@ +package com.craisinlord.antarchy.content.worldgen.cavaryn; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.block.MoltingVinesBlock; +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class MoltingVinesFeature extends Feature { + private static final ResourceLocation MOLTING_VINES_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "molting_vines"); + private static final int SEARCH_RADIUS = 8; + private static final int SEARCH_ATTEMPTS = 24; + private static final int VERTICAL_SCAN = 12; + private static final int MIN_LENGTH = 2; + private static final int MAX_LENGTH = 6; + private static final int BROODFRUIT_CHANCE = 3; + + public MoltingVinesFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + Block block = getBlock(MOLTING_VINES_ID); + if (!(block instanceof MoltingVinesBlock moltingVinesBlock)) { + return false; + } + + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + BlockPos anchorPos = findAnchor(level, context.origin(), random); + if (anchorPos == null) { + return false; + } + + return placeColumn(level, moltingVinesBlock, anchorPos, random); + } + + private static BlockPos findAnchor(WorldGenLevel level, BlockPos origin, RandomSource random) { + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + int minY = level.getMinBuildHeight() + 2; + int maxY = level.getMaxBuildHeight() - 2; + for (int attempt = 0; attempt < SEARCH_ATTEMPTS; attempt++) { + int x = origin.getX() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int z = origin.getZ() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int startY = origin.getY() + random.nextInt(VERTICAL_SCAN * 2 + 1) - VERTICAL_SCAN; + startY = Math.max(minY, Math.min(maxY, startY)); + + for (int y = startY; y >= Math.max(minY, startY - VERTICAL_SCAN); y--) { + mutable.set(x, y, z); + if (!level.getBlockState(mutable).canBeReplaced()) { + continue; + } + BlockPos abovePos = mutable.above(); + BlockState aboveState = level.getBlockState(abovePos); + if (!aboveState.isFaceSturdy(level, abovePos, net.minecraft.core.Direction.DOWN)) { + continue; + } + if (!level.getBlockState(mutable.below()).canBeReplaced()) { + continue; + } + return mutable.immutable(); + } + } + return null; + } + + private static boolean placeColumn(WorldGenLevel level, MoltingVinesBlock block, BlockPos anchorPos, RandomSource random) { + int maxLength = MIN_LENGTH + random.nextInt(MAX_LENGTH - MIN_LENGTH + 1); + int length = 0; + BlockPos.MutableBlockPos mutable = anchorPos.mutable(); + while (length < maxLength && mutable.getY() > level.getMinBuildHeight()) { + BlockState existing = level.getBlockState(mutable); + if (!existing.canBeReplaced()) { + break; + } + length++; + mutable.move(0, -1, 0); + } + + if (length < MIN_LENGTH) { + return false; + } + + int fruitIndex = -1; + if (length >= 3 && random.nextInt(BROODFRUIT_CHANCE) == 0) { + fruitIndex = 1 + random.nextInt(length - 2); + } + + for (int offset = 0; offset < length; offset++) { + BlockPos pos = anchorPos.below(offset); + BlockState state = block.defaultBlockState() + .setValue(MoltingVinesBlock.DISTANCE, Math.min(offset, MoltingVinesBlock.DISTANCE.getPossibleValues().stream().max(Integer::compareTo).orElse(6))) + .setValue(MoltingVinesBlock.BOTTOM_CAP, offset == length - 1) + .setValue(MoltingVinesBlock.BROODFRUIT, offset == fruitIndex); + if (!state.canSurvive(level, pos)) { + return false; + } + level.setBlock(pos, state, 3); + } + + return true; + } + + private static Block getBlock(ResourceLocation id) { + Optional block = BuiltInRegistries.BLOCK.getOptional(id); + return block.orElse(null); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/RollyCavesGiantCavernFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/RollyCavesGiantCavernFeature.java new file mode 100644 index 00000000..ae779806 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/cavaryn/RollyCavesGiantCavernFeature.java @@ -0,0 +1,486 @@ +package com.craisinlord.antarchy.content.worldgen.cavaryn; + +import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.AntarchyTags; +import com.mojang.serialization.Codec; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.CaveVinesBlock; +import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.Tilt; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class RollyCavesGiantCavernFeature extends Feature { + private static final ResourceKey ROLLY_CAVES = ResourceKey.create( + Registries.BIOME, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "rolly_caves")); + private static final ResourceLocation GLOWCAP_MUSHROOM_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "glowcap_mushroom"); + private static final ResourceLocation AMBER_MOSS_BLOCK_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "amber_moss_block"); + private static final ResourceLocation OURANWOOD_WOOD_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "ouranwood_wood"); + private static final ResourceLocation MOSSY_OURANWOOD_WOOD_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "mossy_ouranwood_wood"); + private static final ResourceLocation MOSSY_OURANWOOD_LOG_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "mossy_ouranwood_log"); + + private static final int TRUNK_RADIUS = 2; + private static final int MOSSY_PATCH_CHANCE = 4; + + private static final int BIOME_SAMPLE_RADIUS = 10; + private static final int BIOME_SAMPLE_STEP = 5; + private static final int MIN_BIOME_SAMPLE_MATCHES = 5; + + private static final int MIN_NATURAL_CLEARANCE = 6; + private static final int SCAN_LIMIT = 48; + + private static final int CHAMBER_HEIGHT_MIN = 26; + private static final int CHAMBER_HEIGHT_MAX = 46; + private static final int CHAMBER_RADIUS_MIN = 8; + private static final int CHAMBER_RADIUS_MAX = 12; + private static final int BLOB_LAYER_COUNT = 9; + private static final double MAX_DRIFT_FROM_CENTER = 6.0; + + private static final int MAX_PROCESSED_POSITIONS = 60000; + + private static final int FLOOR_DECORATION_ATTEMPTS = 40; + private static final int CEILING_DECORATION_ATTEMPTS = 30; + private static final int MAX_VINE_LENGTH = 10; + + public RollyCavesGiantCavernFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + try { + return tryPlace(context); + } catch (RuntimeException exception) { + return false; + } + } + + private boolean tryPlace(FeaturePlaceContext context) { + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + BlockPos origin = context.origin(); + + if (!isSurroundedByRollyCaves(level, origin)) { + return false; + } + + NaturalPocket pocket = findNaturalPocket(level, origin); + if (pocket == null) { + return false; + } + + List blobs = buildBlobs(random, pocket.center()); + int carvedPositions = carveBlobs(level, blobs); + if (carvedPositions == 0) { + return false; + } + + placeTrunk(level, random, blobs); + decorateFloor(level, random, blobs); + decorateCeiling(level, random, blobs); + + return true; + } + + private static void placeTrunk(WorldGenLevel level, RandomSource random, List blobs) { + Block woodBlock = getBlock(OURANWOOD_WOOD_ID); + Block mossyWoodBlock = getBlock(MOSSY_OURANWOOD_WOOD_ID); + Block mossyLogBlock = getBlock(MOSSY_OURANWOOD_LOG_ID); + if (woodBlock == null || mossyWoodBlock == null || mossyLogBlock == null) { + return; + } + + Blob bottom = blobs.get(0); + Blob top = blobs.get(blobs.size() - 1); + int trunkBottomY = (int) Math.floor(bottom.y() - bottom.verticalRadius()) + 1; + int trunkTopY = (int) Math.ceil(top.y() + top.verticalRadius()) - 1; + + BlockState woodState = woodBlock.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.Y); + BlockState mossyWoodState = mossyWoodBlock.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.Y); + BlockState mossyLogState = mossyLogBlock.defaultBlockState().setValue(RotatedPillarBlock.AXIS, Direction.Axis.Y); + + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + for (int y = trunkBottomY; y <= trunkTopY; y++) { + double[] center = interpolateCenter(blobs, y); + int centerX = (int) Math.round(center[0]); + int centerZ = (int) Math.round(center[1]); + + for (int dx = -TRUNK_RADIUS; dx <= TRUNK_RADIUS; dx++) { + for (int dz = -TRUNK_RADIUS; dz <= TRUNK_RADIUS; dz++) { + if (dx * dx + dz * dz > TRUNK_RADIUS * TRUNK_RADIUS) { + continue; + } + + mutable.set(centerX + dx, y, centerZ + dz); + BlockState existing = level.getBlockState(mutable); + if (existing.is(Blocks.BEDROCK) || level.getBlockEntity(mutable) != null) { + continue; + } + if (!existing.getFluidState().isEmpty()) { + continue; + } + + boolean surface = dx * dx + dz * dz >= (TRUNK_RADIUS - 1) * (TRUNK_RADIUS - 1); + BlockState toPlace = woodState; + if (surface && random.nextInt(MOSSY_PATCH_CHANCE) == 0) { + toPlace = random.nextBoolean() ? mossyWoodState : mossyLogState; + } + + level.setBlock(mutable, toPlace, 2); + } + } + } + } + + private static double[] interpolateCenter(List blobs, int y) { + Blob lower = blobs.get(0); + Blob upper = blobs.get(blobs.size() - 1); + + for (int i = 0; i < blobs.size() - 1; i++) { + if (y >= blobs.get(i).y() && y <= blobs.get(i + 1).y()) { + lower = blobs.get(i); + upper = blobs.get(i + 1); + break; + } + } + + double span = upper.y() - lower.y(); + double t = span == 0 ? 0 : (y - lower.y()) / span; + t = Math.max(0.0, Math.min(1.0, t)); + + double x = lower.x() + (upper.x() - lower.x()) * t; + double z = lower.z() + (upper.z() - lower.z()) * t; + return new double[] {x, z}; + } + + private static boolean isSurroundedByRollyCaves(WorldGenLevel level, BlockPos origin) { + int matches = 0; + int samples = 0; + for (int dx = -BIOME_SAMPLE_RADIUS; dx <= BIOME_SAMPLE_RADIUS; dx += BIOME_SAMPLE_STEP) { + for (int dz = -BIOME_SAMPLE_RADIUS; dz <= BIOME_SAMPLE_RADIUS; dz += BIOME_SAMPLE_STEP) { + samples++; + if (level.getBiome(origin.offset(dx, 0, dz)).is(ROLLY_CAVES)) { + matches++; + } + } + } + return samples > 0 && matches >= MIN_BIOME_SAMPLE_MATCHES; + } + + private static NaturalPocket findNaturalPocket(WorldGenLevel level, BlockPos origin) { + BlockPos.MutableBlockPos cursor = origin.mutable(); + + if (!level.getBlockState(cursor).isAir()) { + boolean found = false; + for (int radius = 1; radius <= 6 && !found; radius++) { + for (Direction direction : Direction.Plane.HORIZONTAL) { + BlockPos candidate = origin.relative(direction, radius); + if (level.getBlockState(candidate).isAir()) { + cursor.set(candidate); + found = true; + break; + } + } + } + if (!found) { + return null; + } + } + + int floorY = cursor.getY(); + for (int steps = 0; steps < SCAN_LIMIT; steps++) { + BlockPos below = new BlockPos(cursor.getX(), floorY - 1, cursor.getZ()); + if (!level.getBlockState(below).isAir()) { + break; + } + floorY--; + } + + int ceilingY = cursor.getY(); + for (int steps = 0; steps < SCAN_LIMIT; steps++) { + BlockPos above = new BlockPos(cursor.getX(), ceilingY + 1, cursor.getZ()); + if (!level.getBlockState(above).isAir()) { + break; + } + ceilingY++; + } + + int clearance = ceilingY - floorY; + if (clearance < MIN_NATURAL_CLEARANCE) { + return null; + } + + BlockPos center = new BlockPos(cursor.getX(), (floorY + ceilingY) / 2, cursor.getZ()); + return new NaturalPocket(center); + } + + private static List buildBlobs(RandomSource random, BlockPos center) { + int chamberHeight = CHAMBER_HEIGHT_MIN + random.nextInt(CHAMBER_HEIGHT_MAX - CHAMBER_HEIGHT_MIN + 1); + int baseY = center.getY() - chamberHeight / 2; + + List blobs = new ArrayList<>(BLOB_LAYER_COUNT); + double driftX = center.getX(); + double driftZ = center.getZ(); + + for (int i = 0; i < BLOB_LAYER_COUNT; i++) { + double t = (double) i / (BLOB_LAYER_COUNT - 1); + double taper = Math.sin(Math.PI * t); + int layerY = baseY + (int) Math.round(t * chamberHeight); + + double baseRadius = CHAMBER_RADIUS_MIN + (CHAMBER_RADIUS_MAX - CHAMBER_RADIUS_MIN) * taper; + double jitter = 0.85 + random.nextDouble() * 0.3; + double horizontalRadius = Math.max(2.5, baseRadius * jitter); + double verticalRadius = Math.max(3.0, chamberHeight / (double) BLOB_LAYER_COUNT * 1.6); + + driftX = clampDrift(driftX + (random.nextDouble() - 0.5) * 3.0, center.getX()); + driftZ = clampDrift(driftZ + (random.nextDouble() - 0.5) * 3.0, center.getZ()); + + blobs.add(new Blob(driftX, layerY, driftZ, horizontalRadius, verticalRadius)); + } + + return blobs; + } + + private static double clampDrift(double value, double center) { + return Math.max(center - MAX_DRIFT_FROM_CENTER, Math.min(center + MAX_DRIFT_FROM_CENTER, value)); + } + + private static int carveBlobs(WorldGenLevel level, List blobs) { + int minX = Integer.MAX_VALUE; + int maxX = Integer.MIN_VALUE; + int minY = Integer.MAX_VALUE; + int maxY = Integer.MIN_VALUE; + int minZ = Integer.MAX_VALUE; + int maxZ = Integer.MIN_VALUE; + + for (Blob blob : blobs) { + minX = Math.min(minX, (int) Math.floor(blob.x() - blob.horizontalRadius())); + maxX = Math.max(maxX, (int) Math.ceil(blob.x() + blob.horizontalRadius())); + minY = Math.min(minY, (int) Math.floor(blob.y() - blob.verticalRadius())); + maxY = Math.max(maxY, (int) Math.ceil(blob.y() + blob.verticalRadius())); + minZ = Math.min(minZ, (int) Math.floor(blob.z() - blob.horizontalRadius())); + maxZ = Math.max(maxZ, (int) Math.ceil(blob.z() + blob.horizontalRadius())); + } + + BlockState caveAir = Blocks.CAVE_AIR.defaultBlockState(); + int processed = 0; + int carved = 0; + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + + for (int x = minX; x <= maxX && processed < MAX_PROCESSED_POSITIONS; x++) { + for (int y = minY; y <= maxY && processed < MAX_PROCESSED_POSITIONS; y++) { + for (int z = minZ; z <= maxZ && processed < MAX_PROCESSED_POSITIONS; z++) { + processed++; + + if (!insideAnyBlob(blobs, x, y, z)) { + continue; + } + + mutable.set(x, y, z); + BlockState state = level.getBlockState(mutable); + if (state.is(Blocks.BEDROCK) || !state.getFluidState().isEmpty()) { + continue; + } + if (level.getBlockEntity(mutable) != null) { + continue; + } + if (state.isAir()) { + continue; + } + if (!state.is(AntarchyTags.Blocks.ROLLY_CAVERN_CARVEABLE)) { + continue; + } + + level.setBlock(mutable, caveAir, 2); + carved++; + } + } + } + + return carved; + } + + private static boolean insideAnyBlob(List blobs, int x, int y, int z) { + for (Blob blob : blobs) { + double dx = (x + 0.5 - blob.x()) / blob.horizontalRadius(); + double dy = (y + 0.5 - blob.y()) / blob.verticalRadius(); + double dz = (z + 0.5 - blob.z()) / blob.horizontalRadius(); + if (dx * dx + dy * dy + dz * dz <= 1.0) { + return true; + } + } + return false; + } + + private static void decorateFloor(WorldGenLevel level, RandomSource random, List blobs) { + Blob widest = widestBlob(blobs); + Block glowcap = getBlock(GLOWCAP_MUSHROOM_ID); + Block amberMoss = getBlock(AMBER_MOSS_BLOCK_ID); + + for (int attempt = 0; attempt < FLOOR_DECORATION_ATTEMPTS; attempt++) { + double angle = random.nextDouble() * Math.PI * 2; + double distance = random.nextDouble() * widest.horizontalRadius(); + int x = (int) Math.round(widest.x() + Math.cos(angle) * distance); + int z = (int) Math.round(widest.z() + Math.sin(angle) * distance); + + BlockPos floorPos = findFloor(level, x, (int) Math.round(widest.y()), z); + if (floorPos == null) { + continue; + } + + BlockPos abovePos = floorPos.above(); + if (!level.getBlockState(abovePos).isAir()) { + continue; + } + + int roll = random.nextInt(100); + if (roll < 28) { + level.setBlock(floorPos, Blocks.MOSS_BLOCK.defaultBlockState(), 2); + if (random.nextBoolean()) { + level.setBlock(abovePos, Blocks.MOSS_CARPET.defaultBlockState(), 2); + } + } else if (roll < 40) { + level.setBlock(abovePos, Blocks.SHORT_GRASS.defaultBlockState(), 2); + } else if (roll < 50) { + level.setBlock(abovePos, Blocks.SMALL_DRIPLEAF.defaultBlockState(), 2); + } else if (roll < 58) { + placeBigDripleaf(level, random, abovePos); + } else if (roll < 74 && glowcap != null && amberMoss != null) { + level.setBlock(floorPos, amberMoss.defaultBlockState(), 2); + level.setBlock(abovePos, glowcap.defaultBlockState(), 2); + } + } + } + + private static void placeBigDripleaf(WorldGenLevel level, RandomSource random, BlockPos basePos) { + int height = 1 + random.nextInt(3); + BlockPos.MutableBlockPos cursor = basePos.mutable(); + for (int i = 0; i < height; i++) { + if (!level.getBlockState(cursor).isAir()) { + return; + } + level.setBlock(cursor, Blocks.BIG_DRIPLEAF_STEM.defaultBlockState(), 2); + cursor.move(Direction.UP); + } + if (level.getBlockState(cursor).isAir()) { + level.setBlock(cursor, Blocks.BIG_DRIPLEAF.defaultBlockState().setValue(BlockStateProperties.TILT, Tilt.NONE), 2); + } + } + + private static void decorateCeiling(WorldGenLevel level, RandomSource random, List blobs) { + Blob widest = widestBlob(blobs); + + for (int attempt = 0; attempt < CEILING_DECORATION_ATTEMPTS; attempt++) { + double angle = random.nextDouble() * Math.PI * 2; + double distance = random.nextDouble() * widest.horizontalRadius(); + int x = (int) Math.round(widest.x() + Math.cos(angle) * distance); + int z = (int) Math.round(widest.z() + Math.sin(angle) * distance); + + BlockPos ceilingAttach = findCeiling(level, x, (int) Math.round(widest.y()), z); + if (ceilingAttach == null) { + continue; + } + + BlockPos hangPos = ceilingAttach.below(); + if (!level.getBlockState(hangPos).isAir()) { + continue; + } + + int roll = random.nextInt(100); + if (roll < 30) { + level.setBlock(hangPos, Blocks.SPORE_BLOSSOM.defaultBlockState(), 2); + } else { + placeCaveVineCurtain(level, random, hangPos); + } + } + } + + private static void placeCaveVineCurtain(WorldGenLevel level, RandomSource random, BlockPos hangPos) { + int length = availableAirLength(level, hangPos, MAX_VINE_LENGTH); + if (length <= 0) { + return; + } + + BlockPos.MutableBlockPos cursor = hangPos.mutable(); + for (int i = 0; i < length - 1; i++) { + boolean berries = random.nextInt(4) == 0; + level.setBlock(cursor, Blocks.CAVE_VINES_PLANT.defaultBlockState().setValue(CaveVinesBlock.BERRIES, berries), 2); + cursor.move(Direction.DOWN); + } + boolean tipBerries = random.nextInt(3) == 0; + level.setBlock(cursor, Blocks.CAVE_VINES.defaultBlockState().setValue(CaveVinesBlock.BERRIES, tipBerries), 2); + } + + private static int availableAirLength(WorldGenLevel level, BlockPos start, int cap) { + BlockPos.MutableBlockPos cursor = start.mutable(); + int length = 0; + while (length < cap && level.getBlockState(cursor).isAir()) { + length++; + cursor.move(Direction.DOWN); + } + return length; + } + + private static BlockPos findFloor(WorldGenLevel level, int x, int startY, int z) { + BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos(x, startY, z); + for (int steps = 0; steps < SCAN_LIMIT; steps++) { + BlockState state = level.getBlockState(cursor); + BlockState below = level.getBlockState(cursor.below()); + if (state.isAir() && !below.isAir() && below.isFaceSturdy(level, cursor.below(), Direction.UP)) { + return cursor.immutable(); + } + cursor.move(Direction.DOWN); + } + return null; + } + + private static BlockPos findCeiling(WorldGenLevel level, int x, int startY, int z) { + BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos(x, startY, z); + for (int steps = 0; steps < SCAN_LIMIT; steps++) { + BlockState state = level.getBlockState(cursor); + BlockState above = level.getBlockState(cursor.above()); + if (state.isAir() && !above.isAir() && above.isFaceSturdy(level, cursor.above(), Direction.DOWN)) { + return cursor.above().immutable(); + } + cursor.move(Direction.UP); + } + return null; + } + + private static Blob widestBlob(List blobs) { + Blob widest = blobs.get(0); + for (Blob blob : blobs) { + if (blob.horizontalRadius() > widest.horizontalRadius()) { + widest = blob; + } + } + return widest; + } + + private static Block getBlock(ResourceLocation id) { + Optional block = BuiltInRegistries.BLOCK.getOptional(id); + return block.orElse(null); + } + + private record NaturalPocket(BlockPos center) { + } + + private record Blob(double x, double y, double z, double horizontalRadius, double verticalRadius) { + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/mushroom/GlowcapHugeMushroomFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/mushroom/GlowcapHugeMushroomFeature.java new file mode 100644 index 00000000..51d5e560 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/mushroom/GlowcapHugeMushroomFeature.java @@ -0,0 +1,158 @@ +package com.craisinlord.antarchy.content.worldgen.mushroom; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.HugeMushroomBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class GlowcapHugeMushroomFeature extends Feature { + private static final ResourceLocation GLOWCAP_MUSHROOM_BLOCK_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "glowcap_mushroom_block"); + private static final int MIN_STEM_HEIGHT = 5; + private static final int MAX_STEM_HEIGHT = 8; + private static final int CAP_RADIUS = 2; + private static final int TOP_RADIUS = 1; + public GlowcapHugeMushroomFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + Block glowcapBlock = getBlock(GLOWCAP_MUSHROOM_BLOCK_ID); + if (glowcapBlock == null || !(glowcapBlock.defaultBlockState().getBlock() instanceof HugeMushroomBlock)) { + return false; + } + + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + int stemHeight = MIN_STEM_HEIGHT + random.nextInt(MAX_STEM_HEIGHT - MIN_STEM_HEIGHT + 1); + BlockPos origin = context.origin(); + if (!isValidPlacementOrigin(level, origin, stemHeight + 2)) { + return false; + } + BlockState capBase = glowcapBlock.defaultBlockState(); + BlockState stemState = Blocks.MUSHROOM_STEM.defaultBlockState(); + + Direction lean = Direction.Plane.HORIZONTAL.getRandomDirection(random); + + BlockPos.MutableBlockPos cursor = origin.mutable(); + boolean placedAny = false; + + for (int i = 0; i < stemHeight; i++) { + if (i > 1 && i % 2 == 0) { + cursor.move(lean); + } + cursor.setY(origin.getY() + i); + if (!canReplace(level, cursor)) { + continue; + } + level.setBlock(cursor, stemState, 3); + placedAny = true; + } + + BlockPos capCenter = cursor.above().immutable(); + placedAny |= placeUmbrellaCap(level, random, capCenter, capBase); + + return placedAny; + } + + private static boolean isValidPlacementOrigin(WorldGenLevel level, BlockPos origin, int clearanceHeight) { + if (!level.getBlockState(origin).isAir()) { + return false; + } + + BlockPos belowPos = origin.below(); + BlockState belowState = level.getBlockState(belowPos); + if (!belowState.is(BlockTags.MUSHROOM_GROW_BLOCK) && !belowState.isFaceSturdy(level, belowPos, Direction.UP)) { + return false; + } + + return hasVerticalClearance(level, origin, clearanceHeight); + } + + private static boolean hasVerticalClearance(WorldGenLevel level, BlockPos origin, int clearanceHeight) { + for (int offset = 0; offset <= clearanceHeight; offset++) { + if (!canReplace(level, origin.above(offset))) { + return false; + } + } + return true; + } + + private boolean placeUmbrellaCap(WorldGenLevel level, RandomSource random, BlockPos capCenter, BlockState capBase) { + boolean placedAny = false; + BlockState stemState = Blocks.MUSHROOM_STEM.defaultBlockState(); + + for (int dx = -CAP_RADIUS; dx <= CAP_RADIUS; dx++) { + for (int dz = -CAP_RADIUS; dz <= CAP_RADIUS; dz++) { + boolean isCenter = dx == 0 && dz == 0; + boolean coveredByTopTier = Math.abs(dx) <= TOP_RADIUS && Math.abs(dz) <= TOP_RADIUS; + + BlockPos pos = new BlockPos(capCenter.getX() + dx, capCenter.getY(), capCenter.getZ() + dz); + if (!canReplace(level, pos)) { + continue; + } + + if (isCenter) { + level.setBlock(pos, stemState, 3); + placedAny = true; + continue; + } + + BlockState state = capBase + .setValue(HugeMushroomBlock.NORTH, dz == -CAP_RADIUS) + .setValue(HugeMushroomBlock.SOUTH, dz == CAP_RADIUS) + .setValue(HugeMushroomBlock.EAST, dx == CAP_RADIUS) + .setValue(HugeMushroomBlock.WEST, dx == -CAP_RADIUS) + .setValue(HugeMushroomBlock.UP, !coveredByTopTier) + .setValue(HugeMushroomBlock.DOWN, true); + + level.setBlock(pos, state, 3); + placedAny = true; + } + } + + int topY = capCenter.getY() + 1; + for (int dx = -TOP_RADIUS; dx <= TOP_RADIUS; dx++) { + for (int dz = -TOP_RADIUS; dz <= TOP_RADIUS; dz++) { + BlockPos pos = new BlockPos(capCenter.getX() + dx, topY, capCenter.getZ() + dz); + if (!canReplace(level, pos)) { + continue; + } + + BlockState state = capBase + .setValue(HugeMushroomBlock.NORTH, dz == -TOP_RADIUS) + .setValue(HugeMushroomBlock.SOUTH, dz == TOP_RADIUS) + .setValue(HugeMushroomBlock.EAST, dx == TOP_RADIUS) + .setValue(HugeMushroomBlock.WEST, dx == -TOP_RADIUS) + .setValue(HugeMushroomBlock.UP, true) + .setValue(HugeMushroomBlock.DOWN, false); + + level.setBlock(pos, state, 3); + placedAny = true; + } + } + + return placedAny; + } + + private static boolean canReplace(WorldGenLevel level, BlockPos pos) { + BlockState existing = level.getBlockState(pos); + return existing.isAir() || existing.canBeReplaced(); + } + + private static Block getBlock(ResourceLocation id) { + return BuiltInRegistries.BLOCK.getOptional(id).orElse(null); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/mushroom/GlowcapHugeMushroomWorldgenFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/mushroom/GlowcapHugeMushroomWorldgenFeature.java new file mode 100644 index 00000000..5d0e31a9 --- /dev/null +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/mushroom/GlowcapHugeMushroomWorldgenFeature.java @@ -0,0 +1,180 @@ +package com.craisinlord.antarchy.content.worldgen.mushroom; + +import com.craisinlord.antarchy.Antarchy; +import com.mojang.serialization.Codec; +import java.util.Optional; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.BlockTags; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.HugeMushroomBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.levelgen.feature.Feature; +import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; + +public final class GlowcapHugeMushroomWorldgenFeature extends Feature { + private static final ResourceLocation GLOWCAP_MUSHROOM_BLOCK_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "glowcap_mushroom_block"); + private static final int MIN_STEM_HEIGHT = 5; + private static final int MAX_STEM_HEIGHT = 8; + private static final int CAP_RADIUS = 2; + private static final int TOP_RADIUS = 1; + private static final int SEARCH_RADIUS = 6; + private static final int SEARCH_ATTEMPTS = 20; + private static final int VERTICAL_SCAN = 12; + + public GlowcapHugeMushroomWorldgenFeature(Codec codec) { + super(codec); + } + + @Override + public boolean place(FeaturePlaceContext context) { + Block glowcapBlock = getBlock(GLOWCAP_MUSHROOM_BLOCK_ID); + if (glowcapBlock == null || !(glowcapBlock.defaultBlockState().getBlock() instanceof HugeMushroomBlock)) { + return false; + } + + WorldGenLevel level = context.level(); + RandomSource random = context.random(); + int stemHeight = MIN_STEM_HEIGHT + random.nextInt(MAX_STEM_HEIGHT - MIN_STEM_HEIGHT + 1); + BlockPos origin = findPlacementOrigin(level, context.origin(), random, stemHeight + 2); + if (origin == null) { + return false; + } + + BlockState capBase = glowcapBlock.defaultBlockState(); + BlockState stemState = Blocks.MUSHROOM_STEM.defaultBlockState(); + Direction lean = Direction.Plane.HORIZONTAL.getRandomDirection(random); + BlockPos.MutableBlockPos cursor = origin.mutable(); + boolean placedAny = false; + + for (int i = 0; i < stemHeight; i++) { + if (i > 1 && i % 2 == 0) { + cursor.move(lean); + } + cursor.setY(origin.getY() + i); + if (!canReplace(level, cursor)) { + continue; + } + level.setBlock(cursor, stemState, 3); + placedAny = true; + } + + BlockPos capCenter = cursor.above().immutable(); + placedAny |= placeUmbrellaCap(level, capCenter, capBase); + return placedAny; + } + + private static BlockPos findPlacementOrigin(WorldGenLevel level, BlockPos origin, RandomSource random, int clearanceHeight) { + BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); + int minY = Math.max(level.getMinBuildHeight() + 2, origin.getY() - VERTICAL_SCAN); + int maxY = Math.min(level.getMaxBuildHeight() - clearanceHeight - 2, origin.getY() + VERTICAL_SCAN); + + for (int attempt = 0; attempt < SEARCH_ATTEMPTS; attempt++) { + int x = origin.getX() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + int z = origin.getZ() + random.nextInt(SEARCH_RADIUS * 2 + 1) - SEARCH_RADIUS; + + for (int y = maxY; y >= minY; y--) { + mutable.set(x, y, z); + if (!isValidPlacementOrigin(level, mutable, clearanceHeight)) { + continue; + } + return mutable.immutable(); + } + } + + return null; + } + + private static boolean isValidPlacementOrigin(WorldGenLevel level, BlockPos origin, int clearanceHeight) { + if (!level.getBlockState(origin).isAir()) { + return false; + } + + BlockPos belowPos = origin.below(); + BlockState belowState = level.getBlockState(belowPos); + if (!belowState.is(BlockTags.MUSHROOM_GROW_BLOCK) && !belowState.isFaceSturdy(level, belowPos, Direction.UP)) { + return false; + } + + return hasVerticalClearance(level, origin, clearanceHeight); + } + + private static boolean hasVerticalClearance(WorldGenLevel level, BlockPos origin, int clearanceHeight) { + for (int offset = 0; offset <= clearanceHeight; offset++) { + if (!canReplace(level, origin.above(offset))) { + return false; + } + } + return true; + } + + private static boolean placeUmbrellaCap(WorldGenLevel level, BlockPos capCenter, BlockState capBase) { + boolean placedAny = false; + BlockState stemState = Blocks.MUSHROOM_STEM.defaultBlockState(); + + for (int dx = -CAP_RADIUS; dx <= CAP_RADIUS; dx++) { + for (int dz = -CAP_RADIUS; dz <= CAP_RADIUS; dz++) { + boolean isCenter = dx == 0 && dz == 0; + boolean coveredByTopTier = Math.abs(dx) <= TOP_RADIUS && Math.abs(dz) <= TOP_RADIUS; + BlockPos pos = new BlockPos(capCenter.getX() + dx, capCenter.getY(), capCenter.getZ() + dz); + if (!canReplace(level, pos)) { + continue; + } + + if (isCenter) { + level.setBlock(pos, stemState, 3); + placedAny = true; + continue; + } + + BlockState state = capBase + .setValue(HugeMushroomBlock.NORTH, dz == -CAP_RADIUS) + .setValue(HugeMushroomBlock.SOUTH, dz == CAP_RADIUS) + .setValue(HugeMushroomBlock.EAST, dx == CAP_RADIUS) + .setValue(HugeMushroomBlock.WEST, dx == -CAP_RADIUS) + .setValue(HugeMushroomBlock.UP, !coveredByTopTier) + .setValue(HugeMushroomBlock.DOWN, true); + level.setBlock(pos, state, 3); + placedAny = true; + } + } + + int topY = capCenter.getY() + 1; + for (int dx = -TOP_RADIUS; dx <= TOP_RADIUS; dx++) { + for (int dz = -TOP_RADIUS; dz <= TOP_RADIUS; dz++) { + BlockPos pos = new BlockPos(capCenter.getX() + dx, topY, capCenter.getZ() + dz); + if (!canReplace(level, pos)) { + continue; + } + + BlockState state = capBase + .setValue(HugeMushroomBlock.NORTH, dz == -TOP_RADIUS) + .setValue(HugeMushroomBlock.SOUTH, dz == TOP_RADIUS) + .setValue(HugeMushroomBlock.EAST, dx == TOP_RADIUS) + .setValue(HugeMushroomBlock.WEST, dx == -TOP_RADIUS) + .setValue(HugeMushroomBlock.UP, true) + .setValue(HugeMushroomBlock.DOWN, false); + level.setBlock(pos, state, 3); + placedAny = true; + } + } + + return placedAny; + } + + private static boolean canReplace(WorldGenLevel level, BlockPos pos) { + BlockState existing = level.getBlockState(pos); + return existing.isAir() || existing.canBeReplaced(); + } + + private static Block getBlock(ResourceLocation id) { + Optional block = BuiltInRegistries.BLOCK.getOptional(id); + return block.orElse(null); + } +} diff --git a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/LucidAntiwaterPoolFeature.java b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/LucidAntiwaterPoolFeature.java index 2812fbd1..3e14ca50 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/LucidAntiwaterPoolFeature.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/worldgen/thoraxis/LucidAntiwaterPoolFeature.java @@ -1,14 +1,11 @@ package com.craisinlord.antarchy.content.worldgen.thoraxis; import com.craisinlord.antarchy.content.AntarchyObjects; -import com.craisinlord.antarchy.content.block.PotentNyxiteBlock; -import com.craisinlord.antarchy.content.block.state.PotentNyxiteState; import com.mojang.serialization.Codec; import net.minecraft.core.BlockPos; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; import net.minecraft.world.level.WorldGenLevel; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LiquidBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.FluidState; @@ -60,7 +57,6 @@ public final class LucidAntiwaterPoolFeature extends Feature radius * radius) { - continue; - } - - int worldX = centerX + dx; - int worldZ = centerZ + dz; - int localCeilingY = findCeilingY(level, worldX, worldZ, floorY); - if (localCeilingY <= floorY + MIN_CAVITY_HEIGHT) { - continue; - } - - BlockPos magmaPos = new BlockPos(worldX, localCeilingY, worldZ); - BlockPos potentPos = magmaPos.below(); - if (!isSolidSurface(level.getBlockState(magmaPos)) || !isOpenBlock(level.getBlockState(potentPos))) { - continue; - } - - mutable.set(magmaPos); - level.setBlock(mutable, magmaState, 2); - mutable.set(potentPos); - level.setBlock(mutable, potentState, 2); - return true; - } - - return false; - } - private static BlockPos findSupportedSourcePos(WorldGenLevel level, int x, int floorY, int z) { BlockPos.MutableBlockPos mutable = new BlockPos.MutableBlockPos(); for (int y = floorY + 2; y >= floorY - 3; y--) { diff --git a/common/src/main/resources/antarchy-common.mixins.json b/common/src/main/resources/antarchy-common.mixins.json index 1768bb4a..475b8ecc 100644 --- a/common/src/main/resources/antarchy-common.mixins.json +++ b/common/src/main/resources/antarchy-common.mixins.json @@ -56,6 +56,7 @@ "multipart.EntityMultipartLifecycleMixin" ], "client": [ + "client.CavarynSkyMixin", "client.ElythiaSkyMixin", "client.ElytraModelAccessor", "client.FrogRendererElythiaMixin", diff --git a/common/src/main/resources/assets/antarchy/animations/spit_bug.animation.json b/common/src/main/resources/assets/antarchy/animations/spit_bug.animation.json new file mode 100644 index 00000000..04f7b81c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/animations/spit_bug.animation.json @@ -0,0 +1,2625 @@ +{ + "format_version": "1.8.0", + "animations": { + "idle": { + "loop": true, + "animation_length": 2.25, + "bones": { + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-0.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-0.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [7.1226, 29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [7.1226, 29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightEye": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 25, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-25, 25, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightGrip": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 20, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 15, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 20, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "root": { + "position": { + "0.0": { + "post": { + "vector": [0, -11.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, -11.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftEye": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftGrip": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -20, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -15, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, -20, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightAntenna": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 60, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 55, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 60, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightArm": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 17.5, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [7.5, 17.5, -5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [5, 17.5, -5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightElbow": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightClaw": { + "rotation": { + "0.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftAntenna": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -60, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -55, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, -60, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftArm": { + "rotation": { + "0.0": { + "post": { + "vector": [5, -17.5, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [7.5, -17.5, 5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [5, -17.5, 5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftElbow": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftClaw": { + "rotation": { + "0.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.1226, 29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-7.1226, 29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [7.1226, -29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [7.1226, -29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "walk": { + "loop": true, + "animation_length": 0.6667, + "bones": { + "backRightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [0.9, 25.37, 22.42] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-14.7966, -19.965, 19.6746] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-12.2252, -29.0774, 13.585] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [13.6745, 58.6061, 23.203] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0.9, 25.37, 22.42] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 57.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightEye": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 25, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightGrip": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "root": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [-4.9811, -0.4352, -4.9811] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0.0189, -0.4352, -4.9811] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5.0189, -0.4352, -4.9811] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [4.9196, -1.0858, 2.4914] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [4.8066, -1.5099, 7.4746] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-0.1934, -1.5099, 7.4746] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-5.1934, -1.5099, 7.4746] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -13.1, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.0833": { + "post": { + "vector": [6, -15.47, -4] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [6, -13.8, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [4, -11.81, 8] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -12.1, 8] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [-6, -14.96, 4] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-6, -14.55, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [-6, -12.99, -6] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -13.1, -4] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-36.5714, -35.9552, 34.1778] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-23.5556, -44.8303, 14.2689] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5.1528, -57.991, 18.9213] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 57.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftEye": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftGrip": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 30, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -30, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightAntenna": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 70, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 50, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 70, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 50, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 70, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightArm": { + "rotation": { + "0.0": { + "post": { + "vector": [35, 17.5, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5.3498, 1.8604, -13.9961] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [35, 17.5, -5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightElbow": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-52.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightClaw": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [55, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [1.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftAntenna": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -70, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, -50, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, -70, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -50, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -70, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftArm": { + "rotation": { + "0.0": { + "post": { + "vector": [-5.3498, -1.8604, 13.9961] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [35, -17.5, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-5.3498, -1.8604, 13.9961] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftElbow": { + "rotation": { + "0.0": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-52.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-62.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftClaw": { + "rotation": { + "0.0": { + "post": { + "vector": [55, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [1.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [50, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [55, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [5.1528, 57.991, -18.9213] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-7.1226, 29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [-36.5714, 35.9552, -34.1778] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-23.5556, 44.8303, -14.2689] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [5.1528, 57.991, -18.9213] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -57.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-14.7966, 19.965, -19.6746] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-12.2252, 29.0774, -13.585] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [13.6745, -58.6061, -23.203] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0.9, -25.37, -22.42] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [-14.7966, 19.965, -19.6746] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -57.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -57.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 30] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.3333": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 42.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.1667": { + "vector": [12.5, 0, 0] + }, + "0.25": { + "vector": [0, 0, 0] + }, + "0.3333": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [12.5, 0, 0] + }, + "0.5833": { + "vector": [0, 0, 0] + } + } + } + } + }, + "spit": { + "animation_length": 1, + "bones": { + "body": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 1, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [7.1226, 29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [7.1226, 29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.1226, 29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backRightFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightEye": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, 25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-25, 25, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-25, 25, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.0": { + "vector": [1, 1, 1] + }, + "0.1667": { + "vector": [1, 1, 1] + }, + "0.25": { + "vector": [1, 0.3, 1] + }, + "0.4583": { + "vector": [1, 1, 1] + }, + "1.0": { + "vector": [1, 1, 1] + } + } + }, + "rightGrip": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -10, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, -20, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, -20, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, -10, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "root": { + "position": { + "0.0": { + "post": { + "vector": [0, -11.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, -11.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -11.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-13.01658, -61.28435, 22.32925] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-7.1226, -29.2189, 14.3589] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [0, 9, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + }, + "frontRightKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 55] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -35] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontRightFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftEye": { + "rotation": { + "0.0": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1667": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-25, -25, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "scale": { + "0.25": { + "vector": [1, 0.3, 1] + }, + "0.4583": { + "vector": [1, 1, 1] + } + } + }, + "leftGrip": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 10, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -25, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 20, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 20, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 10, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 10, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightAntenna": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 60, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 60, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 60, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightArm": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 17.5, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25.3744, -0.9366, -25.6212] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [41.8878, 17.5, -5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, 17.5, -5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5, 17.5, -5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightElbow": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-60, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "rightClaw": { + "rotation": { + "0.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [59.72, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftAntenna": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -60, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, -60, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, -60, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftArm": { + "rotation": { + "0.0": { + "post": { + "vector": [5, -17.5, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25.3744, 0.9366, 25.6212] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [41.8878, -17.5, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [5, -17.5, 5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5, -17.5, 5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftElbow": { + "rotation": { + "0.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-60, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "leftClaw": { + "rotation": { + "0.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [59.72, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.1226, 29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [-13.01658, 61.28435, -22.32925] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-7.1226, 29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-7.1226, 29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [0, 9, 0] + }, + "1.0": { + "vector": [0, 0, 0] + } + } + }, + "frontLeftKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, -55] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 35] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "frontLeftFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5417": { + "post": { + "vector": [0, 0, 5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [7.1226, -29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [7.1226, -29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.1226, -29.2189, -14.3589] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftKnee": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftLeg": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -10] + }, + "lerp_mode": "catmullrom" + } + } + }, + "backLeftFoot": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 32.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "jaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-11.86, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/antarchy/blockstates/amber_lichen.json b/common/src/main/resources/assets/antarchy/blockstates/amber_lichen.json new file mode 100644 index 00000000..c265ce00 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/amber_lichen.json @@ -0,0 +1,150 @@ +{ + "multipart": [ + { + "apply": { + "model": "antarchy:block/amber_lichen" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen" + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "y": 90 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "y": 180 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "y": 270 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "x": 270 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_lichen", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "false", + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/amber_moss_block.json b/common/src/main/resources/assets/antarchy/blockstates/amber_moss_block.json new file mode 100644 index 00000000..7e867f05 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/amber_moss_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/amber_moss_block" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/amber_moss_carpet.json b/common/src/main/resources/assets/antarchy/blockstates/amber_moss_carpet.json new file mode 100644 index 00000000..e059b29b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/amber_moss_carpet.json @@ -0,0 +1,154 @@ +{ + "multipart": [ + { + "apply": { + "model": "antarchy:block/amber_moss_carpet" + }, + "when": { + "bottom": "true" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet" + }, + "when": { + "bottom": "false", + "east": "none", + "north": "none", + "south": "none", + "west": "none" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall" + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_small" + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall" + }, + "when": { + "bottom": "false", + "east": "none", + "north": "none", + "south": "none", + "west": "none" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_small", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "bottom": "false", + "east": "none", + "north": "none", + "south": "none", + "west": "none" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_small", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "bottom": "false", + "east": "none", + "north": "none", + "south": "none", + "west": "none" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_small", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "antarchy:block/amber_moss_carpet_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "bottom": "false", + "east": "none", + "north": "none", + "south": "none", + "west": "none" + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/bile_vein.json b/common/src/main/resources/assets/antarchy/blockstates/bile_vein.json new file mode 100644 index 00000000..1ab1a4b4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/bile_vein.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/bile_vein" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone.json new file mode 100644 index 00000000..4ae6f1c1 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/broodstone" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_slab.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_slab.json new file mode 100644 index 00000000..115ecd93 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/broodstone_bricks" + }, + "type=bottom": { + "model": "antarchy:block/broodstone_brick_slab" + }, + "type=top": { + "model": "antarchy:block/broodstone_brick_slab_top" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_stairs.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_stairs.json new file mode 100644 index 00000000..3cd1f44f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/broodstone_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_wall.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_wall.json new file mode 100644 index 00000000..63c9f51f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_brick_wall.json @@ -0,0 +1,40 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/broodstone_brick_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_bricks.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_bricks.json new file mode 100644 index 00000000..985c4d09 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/broodstone_bricks" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_slab.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_slab.json new file mode 100644 index 00000000..a6ba6024 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/broodstone" + }, + "type=bottom": { + "model": "antarchy:block/broodstone_slab" + }, + "type=top": { + "model": "antarchy:block/broodstone_slab_top" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_stairs.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_stairs.json new file mode 100644 index 00000000..4ef18c8d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/broodstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_titanium_ore.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_titanium_ore.json new file mode 100644 index 00000000..50acfde6 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_titanium_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/broodstone_titanium_ore" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_uranium_ore.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_uranium_ore.json new file mode 100644 index 00000000..7eec9b8f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_uranium_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/broodstone_uranium_ore" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/broodstone_wall.json b/common/src/main/resources/assets/antarchy/blockstates/broodstone_wall.json new file mode 100644 index 00000000..90f167fc --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/broodstone_wall.json @@ -0,0 +1,40 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/broodstone_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/broodstone_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/broodstone_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/broodstone_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/broodstone_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/broodstone_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/broodstone_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/broodstone_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/broodstone_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/cavaryn_portal.json b/common/src/main/resources/assets/antarchy/blockstates/cavaryn_portal.json new file mode 100644 index 00000000..2dd199fb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/cavaryn_portal.json @@ -0,0 +1,6 @@ +{ + "variants": { + "axis=x": { "model": "antarchy:block/cavaryn_portal_x" }, + "axis=z": { "model": "antarchy:block/cavaryn_portal_z" } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/chiseled_broodstone.json b/common/src/main/resources/assets/antarchy/blockstates/chiseled_broodstone.json new file mode 100644 index 00000000..578b49ca --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/chiseled_broodstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/chiseled_broodstone" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/chiten_block.json b/common/src/main/resources/assets/antarchy/blockstates/chiten_block.json new file mode 100644 index 00000000..651df798 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/chiten_block.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "antarchy:block/chiten_block", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "antarchy:block/chiten_block" + }, + "axis=z": { + "model": "antarchy:block/chiten_block", + "x": 90 + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/chiten_spike.json b/common/src/main/resources/assets/antarchy/blockstates/chiten_spike.json new file mode 100644 index 00000000..4cef7a2b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/chiten_spike.json @@ -0,0 +1,14 @@ +{ + "variants": { + "thickness=base,vertical_direction=down": { "model": "antarchy:block/chiten_spike_down_base" }, + "thickness=base,vertical_direction=up": { "model": "antarchy:block/chiten_spike_up_base" }, + "thickness=frustum,vertical_direction=down": { "model": "antarchy:block/chiten_spike_down_frustum" }, + "thickness=frustum,vertical_direction=up": { "model": "antarchy:block/chiten_spike_up_frustum" }, + "thickness=middle,vertical_direction=down": { "model": "antarchy:block/chiten_spike_down_middle" }, + "thickness=middle,vertical_direction=up": { "model": "antarchy:block/chiten_spike_up_middle" }, + "thickness=tip,vertical_direction=down": { "model": "antarchy:block/chiten_spike_down_tip" }, + "thickness=tip,vertical_direction=up": { "model": "antarchy:block/chiten_spike_up_tip" }, + "thickness=tip_merge,vertical_direction=down": { "model": "antarchy:block/chiten_spike_down_tip_merge" }, + "thickness=tip_merge,vertical_direction=up": { "model": "antarchy:block/chiten_spike_up_tip_merge" } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/creeping_horror_egg.json b/common/src/main/resources/assets/antarchy/blockstates/creeping_horror_egg.json new file mode 100644 index 00000000..8611d9f0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/creeping_horror_egg.json @@ -0,0 +1,76 @@ +{ + "variants": { + "eggs=1,hatch=0": [ + { "model": "antarchy:block/creeping_horror_egg_1" }, + { "model": "antarchy:block/creeping_horror_egg_1", "y": 90 }, + { "model": "antarchy:block/creeping_horror_egg_1", "y": 180 }, + { "model": "antarchy:block/creeping_horror_egg_1", "y": 270 } + ], + "eggs=1,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_1" }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_1", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_1", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_1", "y": 270 } + ], + "eggs=1,hatch=2": [ + { "model": "antarchy:block/very_cracked_creeping_horror_egg_1" }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_1", "y": 90 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_1", "y": 180 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_1", "y": 270 } + ], + "eggs=2,hatch=0": [ + { "model": "antarchy:block/creeping_horror_egg_2" }, + { "model": "antarchy:block/creeping_horror_egg_2", "y": 90 }, + { "model": "antarchy:block/creeping_horror_egg_2", "y": 180 }, + { "model": "antarchy:block/creeping_horror_egg_2", "y": 270 } + ], + "eggs=2,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_2" }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_2", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_2", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_2", "y": 270 } + ], + "eggs=2,hatch=2": [ + { "model": "antarchy:block/very_cracked_creeping_horror_egg_2" }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_2", "y": 90 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_2", "y": 180 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_2", "y": 270 } + ], + "eggs=3,hatch=0": [ + { "model": "antarchy:block/creeping_horror_egg_3" }, + { "model": "antarchy:block/creeping_horror_egg_3", "y": 90 }, + { "model": "antarchy:block/creeping_horror_egg_3", "y": 180 }, + { "model": "antarchy:block/creeping_horror_egg_3", "y": 270 } + ], + "eggs=3,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_3" }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_3", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_3", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_3", "y": 270 } + ], + "eggs=3,hatch=2": [ + { "model": "antarchy:block/very_cracked_creeping_horror_egg_3" }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_3", "y": 90 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_3", "y": 180 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_3", "y": 270 } + ], + "eggs=4,hatch=0": [ + { "model": "antarchy:block/creeping_horror_egg_4" }, + { "model": "antarchy:block/creeping_horror_egg_4", "y": 90 }, + { "model": "antarchy:block/creeping_horror_egg_4", "y": 180 }, + { "model": "antarchy:block/creeping_horror_egg_4", "y": 270 } + ], + "eggs=4,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_4" }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_4", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_4", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_creeping_horror_egg_4", "y": 270 } + ], + "eggs=4,hatch=2": [ + { "model": "antarchy:block/very_cracked_creeping_horror_egg_4" }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_4", "y": 90 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_4", "y": 180 }, + { "model": "antarchy:block/very_cracked_creeping_horror_egg_4", "y": 270 } + ] + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/creepvine.json b/common/src/main/resources/assets/antarchy/blockstates/creepvine.json new file mode 100644 index 00000000..630f81c1 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/creepvine.json @@ -0,0 +1,120 @@ +{ + "multipart": [ + { + "apply": { + "model": "antarchy:block/creepvine" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "y": 180 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "y": 270 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "antarchy:block/creepvine", + "uvlock": true, + "x": 270 + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/glowcap_mushroom.json b/common/src/main/resources/assets/antarchy/blockstates/glowcap_mushroom.json new file mode 100644 index 00000000..ab000bfa --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/glowcap_mushroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/glowcap_mushroom" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/glowcap_mushroom_block.json b/common/src/main/resources/assets/antarchy/blockstates/glowcap_mushroom_block.json new file mode 100644 index 00000000..42da4f90 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/glowcap_mushroom_block.json @@ -0,0 +1,115 @@ +{ + "multipart": [ + { + "apply": { + "model": "antarchy:block/glowcap_mushroom_block" + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "antarchy:block/glowcap_mushroom_block", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "true" + } + }, + { + "apply": { + "model": "antarchy:block/glowcap_mushroom_block", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "antarchy:block/glowcap_mushroom_block", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "antarchy:block/glowcap_mushroom_block", + "uvlock": true, + "x": 270 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "antarchy:block/glowcap_mushroom_block", + "uvlock": true, + "x": 90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside" + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "y": 90 + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "y": 180 + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "y": 270 + }, + "when": { + "west": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "x": 270 + }, + "when": { + "up": "false" + } + }, + { + "apply": { + "model": "minecraft:block/mushroom_block_inside", + "x": 90 + }, + "when": { + "down": "false" + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/hanging_creeproots.json b/common/src/main/resources/assets/antarchy/blockstates/hanging_creeproots.json new file mode 100644 index 00000000..d7ad918f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/hanging_creeproots.json @@ -0,0 +1,10 @@ +{ + "variants": { + "bottom=false": { + "model": "antarchy:block/hanging_creeproots" + }, + "bottom=true": { + "model": "antarchy:block/hanging_creeproots_bottom" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/jumpy_bug_egg.json b/common/src/main/resources/assets/antarchy/blockstates/jumpy_bug_egg.json new file mode 100644 index 00000000..90df0736 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/jumpy_bug_egg.json @@ -0,0 +1,20 @@ +{ + "variants": { + "hanging=false,rotated=false": { + "model": "antarchy:block/jumpy_bug_egg" + }, + "hanging=false,rotated=true": { + "model": "antarchy:block/jumpy_bug_egg", + "y": 90 + }, + "hanging=true,rotated=false": { + "model": "antarchy:block/jumpy_bug_egg", + "x": 180 + }, + "hanging=true,rotated=true": { + "model": "antarchy:block/jumpy_bug_egg", + "x": 180, + "y": 90 + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/lurking_terror_egg.json b/common/src/main/resources/assets/antarchy/blockstates/lurking_terror_egg.json new file mode 100644 index 00000000..dce79841 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/lurking_terror_egg.json @@ -0,0 +1,76 @@ +{ + "variants": { + "eggs=1,hatch=0": [ + { "model": "antarchy:block/lurking_terror_egg_1" }, + { "model": "antarchy:block/lurking_terror_egg_1", "y": 90 }, + { "model": "antarchy:block/lurking_terror_egg_1", "y": 180 }, + { "model": "antarchy:block/lurking_terror_egg_1", "y": 270 } + ], + "eggs=1,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_1" }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_1", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_1", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_1", "y": 270 } + ], + "eggs=1,hatch=2": [ + { "model": "antarchy:block/very_cracked_lurking_terror_egg_1" }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_1", "y": 90 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_1", "y": 180 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_1", "y": 270 } + ], + "eggs=2,hatch=0": [ + { "model": "antarchy:block/lurking_terror_egg_2" }, + { "model": "antarchy:block/lurking_terror_egg_2", "y": 90 }, + { "model": "antarchy:block/lurking_terror_egg_2", "y": 180 }, + { "model": "antarchy:block/lurking_terror_egg_2", "y": 270 } + ], + "eggs=2,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_2" }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_2", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_2", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_2", "y": 270 } + ], + "eggs=2,hatch=2": [ + { "model": "antarchy:block/very_cracked_lurking_terror_egg_2" }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_2", "y": 90 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_2", "y": 180 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_2", "y": 270 } + ], + "eggs=3,hatch=0": [ + { "model": "antarchy:block/lurking_terror_egg_3" }, + { "model": "antarchy:block/lurking_terror_egg_3", "y": 90 }, + { "model": "antarchy:block/lurking_terror_egg_3", "y": 180 }, + { "model": "antarchy:block/lurking_terror_egg_3", "y": 270 } + ], + "eggs=3,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_3" }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_3", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_3", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_3", "y": 270 } + ], + "eggs=3,hatch=2": [ + { "model": "antarchy:block/very_cracked_lurking_terror_egg_3" }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_3", "y": 90 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_3", "y": 180 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_3", "y": 270 } + ], + "eggs=4,hatch=0": [ + { "model": "antarchy:block/lurking_terror_egg_4" }, + { "model": "antarchy:block/lurking_terror_egg_4", "y": 90 }, + { "model": "antarchy:block/lurking_terror_egg_4", "y": 180 }, + { "model": "antarchy:block/lurking_terror_egg_4", "y": 270 } + ], + "eggs=4,hatch=1": [ + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_4" }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_4", "y": 90 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_4", "y": 180 }, + { "model": "antarchy:block/slightly_cracked_lurking_terror_egg_4", "y": 270 } + ], + "eggs=4,hatch=2": [ + { "model": "antarchy:block/very_cracked_lurking_terror_egg_4" }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_4", "y": 90 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_4", "y": 180 }, + { "model": "antarchy:block/very_cracked_lurking_terror_egg_4", "y": 270 } + ] + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/molting_vines.json b/common/src/main/resources/assets/antarchy/blockstates/molting_vines.json new file mode 100644 index 00000000..6a95fab2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/molting_vines.json @@ -0,0 +1,22 @@ +{ + "variants": { + "growth_direction=up,top_cap=true,bottom_cap=false,broodfruit=false": { + "model": "antarchy:block/molting_vines_top" + }, + "growth_direction=up,top_cap=false,bottom_cap=false,broodfruit=false": { + "model": "antarchy:block/molting_vines" + }, + "growth_direction=up,top_cap=false,bottom_cap=false,broodfruit=true": { + "model": "antarchy:block/molting_vines_broodfruit" + }, + "growth_direction=down,top_cap=false,bottom_cap=true,broodfruit=false": { + "model": "antarchy:block/molting_vines_bottom" + }, + "growth_direction=down,top_cap=false,bottom_cap=false,broodfruit=false": { + "model": "antarchy:block/molting_vines" + }, + "growth_direction=down,top_cap=false,bottom_cap=false,broodfruit=true": { + "model": "antarchy:block/molting_vines_broodfruit" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/myrmite.json b/common/src/main/resources/assets/antarchy/blockstates/myrmite.json new file mode 100644 index 00000000..55bfe4a1 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/myrmite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/myrmite" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone.json b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone.json new file mode 100644 index 00000000..80ab8748 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/polished_broodstone" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_slab.json b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_slab.json new file mode 100644 index 00000000..4cafd6de --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=double": { + "model": "antarchy:block/polished_broodstone" + }, + "type=bottom": { + "model": "antarchy:block/polished_broodstone_slab" + }, + "type=top": { + "model": "antarchy:block/polished_broodstone_slab_top" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_stairs.json b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_stairs.json new file mode 100644 index 00000000..2ae5576c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "antarchy:block/polished_broodstone_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "antarchy:block/polished_broodstone_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "antarchy:block/polished_broodstone_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_wall.json b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_wall.json new file mode 100644 index 00000000..ba2cbe4e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/polished_broodstone_wall.json @@ -0,0 +1,40 @@ +{ + "multipart": [ + { + "when": { "up": "true" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_post" } + }, + { + "when": { "north": "low" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side", "uvlock": true } + }, + { + "when": { "east": "low" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side", "y": 90, "uvlock": true } + }, + { + "when": { "south": "low" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side", "y": 180, "uvlock": true } + }, + { + "when": { "west": "low" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side", "y": 270, "uvlock": true } + }, + { + "when": { "north": "tall" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side_tall", "uvlock": true } + }, + { + "when": { "east": "tall" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side_tall", "y": 90, "uvlock": true } + }, + { + "when": { "south": "tall" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side_tall", "y": 180, "uvlock": true } + }, + { + "when": { "west": "tall" }, + "apply": { "model": "antarchy:block/polished_broodstone_wall_side_tall", "y": 270, "uvlock": true } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/potted_glowcap_mushroom.json b/common/src/main/resources/assets/antarchy/blockstates/potted_glowcap_mushroom.json new file mode 100644 index 00000000..a00e7c3d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/potted_glowcap_mushroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "antarchy:block/potted_glowcap_mushroom" + } + } +} diff --git a/common/src/main/resources/assets/antarchy/blockstates/termite_nest.json b/common/src/main/resources/assets/antarchy/blockstates/termite_nest.json new file mode 100644 index 00000000..016df757 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/blockstates/termite_nest.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": {"model": "antarchy:block/termite_nest"}, + "facing=east": {"model": "antarchy:block/termite_nest", "y": 90}, + "facing=south": {"model": "antarchy:block/termite_nest", "y": 180}, + "facing=west": {"model": "antarchy:block/termite_nest", "y": 270} + } +} diff --git a/common/src/main/resources/assets/antarchy/geo/spit_bug.geo.json b/common/src/main/resources/assets/antarchy/geo/spit_bug.geo.json new file mode 100644 index 00000000..ee5d6389 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/geo/spit_bug.geo.json @@ -0,0 +1,231 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.spitbug", + "texture_width": 256, + "texture_height": 256, + "visible_bounds_width": 6, + "visible_bounds_height": 5.5, + "visible_bounds_offset": [0, 2.25, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "body", + "parent": "root", + "pivot": [0, 36, 0], + "cubes": [ + {"origin": [-11.5, 36, -18], "size": [23, 18, 37], "inflate": -0.05, "uv": [0, 103]}, + {"origin": [-9.5, 54, -35], "size": [19, 7, 59], "uv": [0, 0]}, + {"origin": [-7.5, 54, -52], "size": [15, 7, 17], "uv": [112, 28]}, + {"origin": [-6.5, 42, -51.75], "size": [3, 12, 5], "uv": [34, 23]}, + {"origin": [3.5, 42, -51.75], "size": [3, 12, 5], "uv": [34, 23], "mirror": true}, + {"origin": [-7.5, 52, -52], "size": [15, 2, 0], "uv": [0, 24]}, + {"origin": [-7.5, 44, -52], "size": [0, 10, 17], "uv": [5, 29]}, + {"origin": [-9.5, 47, -35], "size": [2, 7, 0], "uv": [37, 16]}, + {"origin": [-9.5, 45, -35], "size": [0, 9, 17], "uv": [0, 18]}, + {"origin": [9.5, 45, -35], "size": [0, 9, 17], "uv": [0, 18], "mirror": true}, + {"origin": [7.5, 47, -35], "size": [2, 7, 0], "uv": [37, 16], "mirror": true}, + {"origin": [7.5, 44, -52], "size": [0, 10, 17], "uv": [5, 29], "mirror": true}, + {"origin": [-11.5, 32.1, -18], "size": [23, 4, 33], "inflate": -0.05, "uv": [0, 66]} + ] + }, + { + "name": "jaw", + "parent": "body", + "pivot": [-3.07143, 33.92857, -16], + "cubes": [ + {"origin": [-8.5, 32, -51], "size": [17, 2, 18], "uv": [97, 0]}, + {"origin": [-11.5, 30, -33], "size": [23, 4, 17], "uv": [79, 66]}, + {"origin": [-11.5, 34, -33], "size": [0, 8, 17], "uv": [0, -17]}, + {"origin": [-11.5, 34, -33], "size": [3, 8, 0], "uv": [0, 8]}, + {"origin": [8.5, 34, -33], "size": [3, 8, 0], "uv": [0, 8], "mirror": true}, + {"origin": [11.5, 34, -33], "size": [0, 8, 17], "uv": [0, -17], "mirror": true}, + {"origin": [-8.5, 34, -51], "size": [0, 8, 18], "uv": [0, -2]}, + {"origin": [-4.5, 32.5, -52.575], "size": [3, 8, 4], "pivot": [-3, 36.5, -50.575], "rotation": [22.5, 0, 0], "uv": [35, 0]}, + {"origin": [1.5, 32.5, -52.575], "size": [3, 8, 4], "pivot": [3, 36.5, -50.575], "rotation": [22.5, 0, 0], "uv": [35, 0], "mirror": true}, + {"origin": [-8.5, 34, -51], "size": [17, 8, 0], "uv": [0, 26]}, + {"origin": [8.5, 34, -51], "size": [0, 8, 18], "uv": [0, -2], "mirror": true} + ] + }, + { + "name": "rightEye", + "parent": "body", + "pivot": [-11, 45.5, -17], + "cubes": [ + {"origin": [-12, 45.5, -19], "size": [3, 3, 3], "uv": [83, 114]} + ] + }, + { + "name": "leftEye", + "parent": "body", + "pivot": [11, 45.5, -17], + "cubes": [ + {"origin": [9, 45.5, -19], "size": [3, 3, 3], "uv": [83, 114], "mirror": true} + ] + }, + { + "name": "rightGrip", + "parent": "body", + "pivot": [-11.5, 54, -16], + "rotation": [0, 0, 90] + }, + { + "name": "leftGrip", + "parent": "body", + "pivot": [11.5, 54, -16], + "rotation": [0, 0, -90] + }, + { + "name": "backRightThigh", + "parent": "root", + "pivot": [-11.5, 37, 10], + "cubes": [ + {"origin": [-20.5, 33, 8], "size": [9, 4, 4], "uv": [83, 120]} + ] + }, + { + "name": "backRightKnee", + "parent": "backRightThigh", + "pivot": [-20.5, 37, 10], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-34.5, 32, 7], "size": [14, 5, 6], "inflate": 0.025, "uv": [83, 103]} + ] + }, + { + "name": "backRightLeg", + "parent": "backRightKnee", + "pivot": [-34.5, 32, 10], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [-53.5, 32, 8], "size": [19, 4, 4], "uv": [97, 20]} + ] + }, + { + "name": "backRightFoot", + "parent": "backRightLeg", + "pivot": [-53.5, 32, 10], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-67.5, 30, 9], "size": [14, 2, 2], "inflate": 0.025, "uv": [97, 28]}, + {"origin": [-76.5, 30, 10], "size": [9, 2, 0], "uv": [97, 32]} + ] + }, + { + "name": "backLeftThigh", + "parent": "root", + "pivot": [11.5, 37, 10], + "cubes": [ + {"origin": [11.5, 33, 8], "size": [9, 4, 4], "uv": [83, 120]} + ] + }, + { + "name": "backLeftKnee", + "parent": "backLeftThigh", + "pivot": [20.5, 37, 10], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [20.5, 32, 7], "size": [14, 5, 6], "inflate": 0.025, "uv": [83, 103]} + ] + }, + { + "name": "backLeftLeg", + "parent": "backLeftKnee", + "pivot": [34.5, 32, 10], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [34.5, 32, 8], "size": [19, 4, 4], "uv": [97, 20]} + ] + }, + { + "name": "backLeftFoot", + "parent": "backLeftLeg", + "pivot": [53.5, 32, 10], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [53.5, 30, 9], "size": [14, 2, 2], "inflate": 0.025, "uv": [97, 28]}, + {"origin": [67.5, 30, 10], "size": [9, 2, 0], "uv": [97, 32], "mirror": true} + ] + }, + { + "name": "frontRightThigh", + "parent": "root", + "pivot": [-11.5, 37, -10], + "cubes": [ + {"origin": [-20.5, 33, -12], "size": [9, 4, 4], "uv": [83, 120]} + ] + }, + { + "name": "frontRightKnee", + "parent": "frontRightThigh", + "pivot": [-20.5, 37, -10], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-34.5, 32, -13], "size": [14, 5, 6], "inflate": 0.025, "uv": [83, 103]} + ] + }, + { + "name": "frontRightLeg", + "parent": "frontRightKnee", + "pivot": [-34.5, 32, -10], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [-53.5, 32, -12], "size": [19, 4, 4], "uv": [97, 20]} + ] + }, + { + "name": "frontRightFoot", + "parent": "frontRightLeg", + "pivot": [-53.5, 32, -10], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [-67.5, 30, -11], "size": [14, 2, 2], "inflate": 0.025, "uv": [97, 28]}, + {"origin": [-76.5, 30, -10], "size": [9, 2, 0], "uv": [97, 32]} + ] + }, + { + "name": "frontLeftThigh", + "parent": "root", + "pivot": [11.5, 37, -10], + "cubes": [ + {"origin": [11.5, 33, -12], "size": [9, 4, 4], "uv": [83, 120]} + ] + }, + { + "name": "frontLeftKnee", + "parent": "frontLeftThigh", + "pivot": [20.5, 37, -10], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [20.5, 32, -13], "size": [14, 5, 6], "inflate": 0.025, "uv": [83, 103]} + ] + }, + { + "name": "frontLeftLeg", + "parent": "frontLeftKnee", + "pivot": [34.5, 32, -10], + "rotation": [0, 0, -90], + "cubes": [ + {"origin": [34.5, 32, -12], "size": [19, 4, 4], "uv": [97, 20]} + ] + }, + { + "name": "frontLeftFoot", + "parent": "frontLeftLeg", + "pivot": [53.5, 32, -10], + "rotation": [0, 0, 90], + "cubes": [ + {"origin": [53.5, 30, -11], "size": [14, 2, 2], "inflate": 0.025, "uv": [97, 28]}, + {"origin": [67.5, 30, -10], "size": [9, 2, 0], "uv": [97, 32], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/antarchy/lang/en_us.json b/common/src/main/resources/assets/antarchy/lang/en_us.json index aa41aab7..675318a9 100644 --- a/common/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common/src/main/resources/assets/antarchy/lang/en_us.json @@ -209,6 +209,9 @@ "item.antarchy.big_bertha_handle": "Big Bertha Handle", "item.antarchy.big_bertha_hilt": "Big Bertha Hilt", "item.antarchy.battle_axe": "Battle Axe", + "item.antarchy.attitude_adjuster": "Attitude Adjuster", + "tooltip.antarchy.attitude_adjuster.grounded": "Smashes targets on the ground upward, targets in the air slam onto the ground.", + "tooltip.antarchy.attitude_adjuster.slam": "Right-click while airborne to ground slam.", "item.antarchy.cloud_shark_fin": "Cloud Shark Fin", "item.antarchy.cloud_shark_fin_soup": "Cloud Shark Fin Soup", "tooltip.antarchy.cloud_shark_fin_soup": "Grants Strength and Slow Falling.", @@ -487,11 +490,13 @@ "item.antarchy.mantis_spawn_egg": "Mantis Spawn Egg", "item.antarchy.alpha_mantis_spawn_egg": "Alpha Mantis Spawn Egg", "biome.antarchy.moleworm_caves": "Moleworm Caves", + "biome.antarchy.elythia_meadow": "Elythian Meadows", "biome.antarchy.butterfly_fields": "Butterfly Fields", "biome.antarchy.ouranwood_forest": "Ouranwood Forest", "biome.antarchy.glimmering_pools": "Glimmering Pools", "biome.antarchy.peach_forest": "Peach Forest", "biome.antarchy.fungal_ouranwood_forest": "Fungal Ouranwood Forest", + "biome.antarchy.glowcap_caves": "Glowcap Caves", "message.antarchy.brown_ant_activated": "The brown ant is ready to open its destination.", "message.antarchy.brown_ant_needs_reagent": "This brown ant needs a reagent before it can open its destination.", "message.antarchy.rainbow_ant_activated": "The rainbow ant hums with a new Infinity destination.", @@ -504,6 +509,9 @@ "message.antarchy.red_ant_needs_reagent": "This red ant needs a reagent before it can open its destination.", "message.antarchy.termite_activated": "The termite is ready to open its destination.", "message.antarchy.termite_needs_reagent": "This termite needs a reagent before it can open its destination.", + "death.attack.spit_bug_disrespect": "%1$s was disrespected by Spit Bug", + "death.attack.jumpy_bug_jump": "%1$s was jumped by Jumpy Bug", + "death.attack.hercules_beetle_obliteration": "%1$s was obliterated by Hercules Beetle", "message.antarchy.big_bertha.mode": "Big Bertha Mode: %s", "message.antarchy.big_bertha.mode.basilisk": "Basilisk", "message.antarchy.big_bertha.mode.lucid": "Lucid", @@ -850,5 +858,90 @@ "advancements.antarchy.rocket_powered_octopus.title": "Rocket Powered Octopus", "advancements.antarchy.rocket_powered_octopus.description": "Craft an R.P.O. Launcher.", "advancements.antarchy.gravity_gun_craft.title": "Pick Up Artist", - "advancements.antarchy.gravity_gun_craft.description": "Craft a Gravity Gun." + "advancements.antarchy.gravity_gun_craft.description": "Craft a Gravity Gun.", + "block.antarchy.cavaryn_portal": "Cavaryn Portal", + "block.antarchy.termite_nest": "Termite Nest", + "block.antarchy.chiten_spike": "Chiten Spike", + "block.antarchy.chiten_block": "Chiten Block", + "block.antarchy.myrmite": "Myrmite", + "block.antarchy.broodstone": "Broodstone", + "block.antarchy.amber_moss_block": "Amber Moss Block", + "block.antarchy.amber_moss_carpet": "Amber Moss Carpet", + "block.antarchy.amber_lichen": "Amber Lichen", + "block.antarchy.bile_vein": "Bile Vein", + "block.antarchy.creepvine": "Creepvine", + "block.antarchy.creeping_horror_egg": "Creeping Horror Egg", + "block.antarchy.lurking_terror_egg": "Lurking Terror Egg", + "entity.antarchy.termite": "Termite", + "entity.antarchy.jumpy_bug": "Jumpy Bug", + "entity.antarchy.spit_bug": "Spit Bug", + "entity.antarchy.stink_bug": "Stink Bug", + "entity.antarchy.rolly_polly": "Rolly Polly", + "entity.antarchy.creeping_horror": "Creeping Horror", + "entity.antarchy.lurking_terror": "Lurking Terror", + "entity.antarchy.hercules_beetle": "Hercules Beetle", + "item.antarchy.jumpy_bug_spawn_egg": "Jumpy Bug Spawn Egg", + "item.antarchy.spit_bug_spawn_egg": "Spit Bug Spawn Egg", + "item.antarchy.stink_bug_spawn_egg": "Stink Bug Spawn Egg", + "item.antarchy.termite_spawn_egg": "Termite Spawn Egg", + "item.antarchy.rolly_polly_spawn_egg": "Rolly Polly Spawn Egg", + "item.antarchy.creeping_horror_spawn_egg": "Creeping Horror Spawn Egg", + "item.antarchy.lurking_terror_spawn_egg": "Lurking Terror Spawn Egg", + "item.antarchy.hercules_beetle_spawn_egg": "Hercules Beetle Spawn Egg", + "item.antarchy.chiten": "Chiten", + "block.antarchy.polished_broodstone": "Polished Broodstone", + "block.antarchy.chiseled_broodstone": "Chiseled Broodstone", + "block.antarchy.broodstone_bricks": "Broodstone Bricks", + "block.antarchy.broodstone_stairs": "Broodstone Stairs", + "block.antarchy.broodstone_slab": "Broodstone Slab", + "block.antarchy.broodstone_wall": "Broodstone Wall", + "block.antarchy.polished_broodstone_stairs": "Polished Broodstone Stairs", + "block.antarchy.polished_broodstone_slab": "Polished Broodstone Slab", + "block.antarchy.polished_broodstone_wall": "Polished Broodstone Wall", + "block.antarchy.broodstone_brick_stairs": "Broodstone Brick Stairs", + "block.antarchy.broodstone_brick_slab": "Broodstone Brick Slab", + "block.antarchy.broodstone_brick_wall": "Broodstone Brick Wall", + "block.antarchy.broodstone_uranium_ore": "Broodstone Uranium Ore", + "block.antarchy.broodstone_titanium_ore": "Broodstone Titanium Ore", + "item.antarchy.raw_bug_meat": "Raw Bug Meat", + "item.antarchy.cooked_bug_meat": "Cooked Bug Meat", + "item.antarchy.hercules_horn": "Hercules Horn", + "block.antarchy.hanging_creeproots": "Hanging Creeproots", + "block.antarchy.glowcap_mushroom": "Glowcap Mushroom", + "block.antarchy.potted_glowcap_mushroom": "Potted Glowcap Mushroom", + "block.antarchy.glowcap_mushroom_block": "Glowcap Mushroom Block", + "block.antarchy.molting_vines": "Molting Vines", + "item.antarchy.broodfruit": "Broodfruit", + "block.antarchy.jumpy_bug_egg": "Jumpy Bug Egg", + "subtitles.antarchy.creeping_horror_growl": "Creeping Horror growls", + "subtitles.antarchy.creeping_horror_hurt": "Creeping Horror hurts", + "subtitles.antarchy.creeping_horror_bite": "Creeping Horror bites", + "subtitles.antarchy.lurking_terror_snarl": "Lurking Terror snarls", + "subtitles.antarchy.lurking_terror_hurt": "Lurking Terror hurts", + "subtitles.antarchy.lurking_terror_bite": "Lurking Terror bites", + "subtitles.antarchy.lurking_terror_fly_loop": "Lurking Terror flies", + "subtitles.antarchy.stink_bug_fart": "Stink Bug farts", + "subtitles.antarchy.stink_bug_idle": "Stink Bug idles", + "subtitles.antarchy.rolly_polly_idle": "Rolly Polly idles", + "subtitles.antarchy.hercules_beetle_idle": "Hercules Beetle idles", + "subtitles.antarchy.hercules_beetle_hurt": "Hercules Beetle hurts", + "subtitles.antarchy.hercules_beetle_attack": "Hercules Beetle attacks", + "subtitles.antarchy.hercules_beetle_cry": "Hercules Beetle roars", + "subtitles.antarchy.hercules_beetle_charge_start": "Hercules Beetle charges up", + "subtitles.antarchy.hercules_beetle_knocked_down": "Hercules Beetle is knocked down", + "subtitles.antarchy.jumpy_bug_idle": "Jumpy Bug idles", + "subtitles.antarchy.spit_bug_idle": "Spit Bug idles", + "subtitles.antarchy.jumpy_bug_hurt": "Jumpy Bug hurts", + "subtitles.antarchy.jumpy_bug_jump": "Jumpy Bug jumps", + "subtitles.antarchy.spit_bug_hurt": "Spit Bug hurts", + "subtitles.antarchy.spit_bug_spit": "Spit Bug spits", + "subtitles.antarchy.brutalfly_spit": "Brutalfly spits", + "advancements.antarchy.bug_apetit.title": "Bug Apétit", + "advancements.antarchy.bug_apetit.description": "Eat Cooked Bug Meat.", + "advancements.antarchy.behavioral_correction.title": "Behavioral Correction", + "advancements.antarchy.behavioral_correction.description": "Obtain an Attitude Adjuster.", + "advancements.antarchy.beetle_buddies.title": "Beetle Buddies", + "advancements.antarchy.beetle_buddies.description": "Tame a Hercules Beetle.", + "advancements.antarchy.herculean_task.title": "Herculean Task", + "advancements.antarchy.herculean_task.description": "Slay a Hercules Beetle." } diff --git a/common/src/main/resources/assets/antarchy/lang/ru_ru.json b/common/src/main/resources/assets/antarchy/lang/ru_ru.json new file mode 100644 index 00000000..aeee1383 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/lang/ru_ru.json @@ -0,0 +1,834 @@ +{ + "block.antarchy.duplicator_log": "Бревно-дупликатор", + "block.antarchy.ouranwood_log": "Оурановое бревно", + "block.antarchy.ouranwood_wood": "Оурановое дерево", + "block.antarchy.mossy_ouranwood_log": "Замшелое оурановое бревно", + "block.antarchy.mossy_ouranwood_wood": "Замшелое оурановое дерево", + "block.antarchy.stripped_ouranwood_log": "Обтёсанное оурановое бревно", + "block.antarchy.stripped_ouranwood_wood": "Обтёсанное оурановое дерево", + "block.antarchy.ouranwood_planks": "Оурановые доски", + "block.antarchy.ouranwood_stairs": "Оурановые ступени", + "block.antarchy.ouranwood_slab": "Оурановая плита", + "block.antarchy.ouranwood_fence": "Оурановый забор", + "block.antarchy.ouranwood_fence_gate": "Оурановая калитка", + "block.antarchy.ouranwood_door": "Оурановая дверь", + "block.antarchy.ouranwood_trapdoor": "Оурановый люк", + "block.antarchy.ouranwood_pressure_plate": "Оурановая нажимная плита", + "block.antarchy.ouranwood_button": "Оурановая кнопка", + "block.antarchy.ouranwood_leaves": "Листья оуранового дерева", + "block.antarchy.ouranwood_acorn": "Оурановый жёлудь", + "block.antarchy.ouranwood_sign": "Оурановая табличка", + "block.antarchy.ouranwood_hanging_sign": "Оурановая подвесная табличка", + "block.antarchy.peach_log": "Персиковое бревно", + "block.antarchy.peach_wood": "Персиковое дерево", + "block.antarchy.stripped_peach_log": "Обтёсанное персиковое бревно", + "block.antarchy.stripped_peach_wood": "Обтёсанное персиковое дерево", + "block.antarchy.peach_planks": "Персиковые доски", + "block.antarchy.peach_stairs": "Персиковые ступени", + "block.antarchy.peach_slab": "Персиковая плита", + "block.antarchy.peach_fence": "Персиковый забор", + "block.antarchy.peach_fence_gate": "Персиковая калитка", + "block.antarchy.peach_door": "Персиковая дверь", + "block.antarchy.peach_trapdoor": "Персиковый люк", + "block.antarchy.peach_pressure_plate": "Персиковая нажимная плита", + "block.antarchy.peach_button": "Персиковая кнопка", + "block.antarchy.peach_leaves": "Листья персикового дерева", + "block.antarchy.hanging_peach": "Висячий персик", + "block.antarchy.peach_sapling": "Саженец персикового дерева", + "block.antarchy.peach_sign": "Персиковая табличка", + "block.antarchy.peach_hanging_sign": "Персиковая подвесная табличка", + "block.antarchy.orange_milkweed": "Оранжевый ваточник", + "block.antarchy.pink_milkweed": "Розовый ваточник", + "block.antarchy.camellia": "Камелия", + "block.antarchy.spider_lily": "Паучья лилия", + "block.antarchy.hushweed": "Тишь-трава", + "block.antarchy.umbral_moss_block": "Блок теневого мха", + "block.antarchy.umbral_moss_carpet": "Ковёр из теневого мха", + "block.antarchy.blush_moss_block": "Блок румяного мха", + "block.antarchy.blush_moss_carpet": "Ковёр из румяного мха", + "block.antarchy.duplicator_sapling": "Саженец дупликатора", + "block.antarchy.duct_tape": "Клейкая лента", + "block.antarchy.infested_rooted_dirt": "Заражённая корнями земля", + "block.antarchy.infested_coarse_dirt": "Заражённая каменистая земля", + "block.antarchy.nyxite": "Никсит", + "block.antarchy.polished_nyxite": "Полированный никсит", + "block.antarchy.chiseled_nyxite": "Резной никсит", + "block.antarchy.nyxite_bricks": "Никситовые кирпичи", + "block.antarchy.shellstone": "Ракушечник", + "block.antarchy.polished_shellstone": "Полированный ракушечник", + "block.antarchy.shellstone_bricks": "Кирпичи из ракушечника", + "block.antarchy.chiseled_shellstone": "Резной ракушечник", + "block.antarchy.mossy_shellstone_bricks": "Замшелые кирпичи из ракушечника", + "block.antarchy.mossy_shellstone_brick_stairs": "Ступени из замшелого ракушечника", + "block.antarchy.mossy_shellstone_brick_slab": "Плита из замшелого ракушечника", + "block.antarchy.mossy_shellstone_brick_wall": "Ограда из замшелого ракушечника", + "block.antarchy.cracked_shellstone_bricks": "Потрескавшиеся кирпичи из ракушечника", + "block.antarchy.shellstone_stairs": "Ступени из ракушечника", + "block.antarchy.shellstone_slab": "Плита из ракушечника", + "block.antarchy.shellstone_wall": "Ограда из ракушечника", + "block.antarchy.polished_shellstone_stairs": "Ступени из полированного ракушечника", + "block.antarchy.polished_shellstone_slab": "Плита из полированного ракушечника", + "block.antarchy.polished_shellstone_wall": "Ограда из полированного ракушечника", + "block.antarchy.shellstone_brick_stairs": "Ступени из кирпичей ракушечника", + "block.antarchy.shellstone_brick_slab": "Плита из кирпичей ракушечника", + "block.antarchy.shellstone_brick_wall": "Ограда из кирпичей ракушечника", + "block.antarchy.nyxite_stairs": "Никситовые ступени", + "block.antarchy.nyxite_slab": "Никситовая плита", + "block.antarchy.nyxite_wall": "Никситовая ограда", + "block.antarchy.polished_nyxite_stairs": "Ступени из полированного никсита", + "block.antarchy.polished_nyxite_slab": "Плита из полированного никсита", + "block.antarchy.polished_nyxite_wall": "Ограда из полированного никсита", + "block.antarchy.nyxite_brick_stairs": "Ступени из никситового кирпича", + "block.antarchy.nyxite_brick_slab": "Плита из никситового кирпича", + "block.antarchy.nyxite_brick_wall": "Ограда из никситового кирпича", + "block.antarchy.pale_nyxite": "Бледный никсит", + "block.antarchy.nyxite_spike": "Никситовый шип", + "block.antarchy.potent_nyxite": "Насыщенный никсит", + "block.antarchy.triffid_goo_block": "Блок слизи триффида", + "block.antarchy.elythia_portal": "Портал в Элитию", + "block.antarchy.cloud_block": "Облачный блок", + "block.antarchy.thoraxis_portal": "Портал в Тораксис", + "block.antarchy.antimetal": "Антиметалл", + "block.antarchy.polished_antimetal": "Полированный антиметалл", + "block.antarchy.antimetal_scaffolding": "Антиметаллические подмостки", + "block.antarchy.cornea_stalk": "Глазной стебель", + "block.antarchy.corn_crop": "Посевы кукурузы", + "block.antarchy.dream_torch": "Факел сновидений", + "block.antarchy.dream_wall_torch": "Настенный факел сновидений", + "block.antarchy.dream_lantern": "Фонарь сновидений", + "block.antarchy.dream_campfire": "Костёр сновидений", + "block.antarchy.dream_fire": "Огонь сновидений", + "block.antarchy.dream_fire_ceiling": "Огонь сновидений", + "block.antarchy.budding_blood_crystal": "Цветущий кровавый кристалл", + "block.antarchy.blood_crystal_block": "Блок кровавого кристалла", + "block.antarchy.small_blood_crystal_bud": "Малый бутон кровавого кристалла", + "block.antarchy.medium_blood_crystal_bud": "Средний бутон кровавого кристалла", + "block.antarchy.large_blood_crystal_bud": "Большой бутон кровавого кристалла", + "block.antarchy.blood_crystal_cluster": "Скопление кровавого кристалла", + "block.antarchy.dream_sand": "Песок сновидений", + "block.antarchy.dream_sandstone": "Песчаник сновидений", + "block.antarchy.chiseled_dream_sandstone": "Резной песчаник сновидений", + "block.antarchy.cut_dream_sandstone": "Гладкий песчаник сновидений", + "block.antarchy.smooth_dream_sandstone": "Пиленый песчаник сновидений", + "block.antarchy.dream_sandstone_stairs": "Ступени из песчаника сновидений", + "block.antarchy.dream_sandstone_slab": "Плита из песчаника сновидений", + "block.antarchy.dream_sandstone_wall": "Ограда из песчаника сновидений", + "block.antarchy.smooth_dream_sandstone_stairs": "Ступени из гладкого песчаника сновидений", + "block.antarchy.smooth_dream_sandstone_slab": "Плита из гладкого песчаника сновидений", + "block.antarchy.cut_dream_sandstone_slab": "Плита из пиленого песчаника сновидений", + "block.antarchy.bed_bug_egg": "Яйцо постельного клопа", + "block.antarchy.wasp_nest": "Осиное гнездо", + "block.antarchy.red_ant_nest": "Гнездо красных муравьёв", + "block.antarchy.brown_ant_nest": "Гнездо коричневых муравьёв", + "block.antarchy.rainbow_ant_nest": "Гнездо радужных муравьёв", + "block.antarchy.uranium_ore": "Урановая руда", + "block.antarchy.deepslate_uranium_ore": "Глубинная урановая руда", + "block.antarchy.titanium_ore": "Титановая руда", + "block.antarchy.deepslate_titanium_ore": "Глубинная титановая руда", + "block.antarchy.uranium_block": "Урановый блок", + "block.antarchy.titanium_block": "Титановый блок", + "block.antarchy.raw_uranium_block": "Блок неочищенного урана", + "block.antarchy.raw_titanium_block": "Блок неочищенного титана", + "block.antarchy.cut_uranium": "Огранённый уран", + "block.antarchy.cut_titanium": "Огранённый титан", + "block.antarchy.cut_uranium_slab": "Плита из огранённого урана", + "block.antarchy.cut_titanium_slab": "Плита из огранённого титана", + "block.antarchy.cut_uranium_stairs": "Ступени из огранённого урана", + "block.antarchy.cut_titanium_stairs": "Ступени из огранённого титана", + "block.antarchy.chiseled_uranium": "Резной уран", + "block.antarchy.chiseled_titanium": "Резной титан", + "block.antarchy.uranium_bulb": "Урановая лампа", + "block.antarchy.titanium_bulb": "Титановая лампа", + "block.antarchy.uranium_door": "Урановая дверь", + "block.antarchy.titanium_door": "Титановая дверь", + "block.antarchy.uranium_trapdoor": "Урановый люк", + "block.antarchy.titanium_trapdoor": "Титановый люк", + "block.antarchy.uranium_bars": "Урановые прутья", + "block.antarchy.titanium_bars": "Титановые прутья", + "tooltip.antarchy.signal_saving_bulb": "Включается и выключается. Уровень излучаемого света равен силе сохранённого редстоун-сигнала.", + "block.antarchy.bile": "Желчь", + "block.antarchy.ichor": "Ихор", + "block.antarchy.antiwater": "Антивода", + "block.antarchy.lumen": "Люмен", + "block.antarchy.lumen_froglight": "Люменовый квампост", + "block.antarchy.roseate_froglight": "Розоватый квампост", + "entity.antarchy.apple_cow": "Яблочная корова", + "entity.antarchy.golden_apple_cow": "Золотая яблочная корова", + "entity.antarchy.enchanted_golden_apple_cow": "Зачарованная золотая яблочная корова", + "entity.antarchy.easter_bunny": "Пасхальный кролик", + "entity.antarchy.glimmer": "Блик", + "entity.antarchy.ouranwood_deer": "Оурановый олень", + "entity.antarchy.elka": "Элка", + "entity.antarchy.dorrie": "Дорри", + "entity.antarchy.flying_squirrel": "Белка-летяга", + "entity.antarchy.caterpillar": "Гусеница", + "entity.antarchy.butterfly": "Бабочка", + "entity.antarchy.brutalfly": "Жестококрыл", + "entity.antarchy.red_ant": "Красный муравей", + "entity.antarchy.brown_ant": "Коричневый муравей", + "entity.antarchy.rainbow_ant": "Радужный муравей", + "entity.antarchy.diamond_minecart": "Алмазная вагонетка", + "entity.antarchy.dr_trayaurus": "Доктор Траяурус", + "entity.antarchy.cloud_shark": "Облачная акула", + "entity.antarchy.kraken": "Кракен", + "entity.antarchy.missile_squid": "Кальмар-ракета", + "entity.antarchy.octopus_bomb": "Осьминог-бомба", + "entity.antarchy.nightmare": "Кошмар", + "entity.antarchy.bed_bug": "Постельный клоп", + "entity.antarchy.wasp": "Оса", + "entity.antarchy.bomber": "Бомбардир", + "entity.antarchy.moleworm": "Кроточервь", + "entity.antarchy.molevore": "Кротожор", + "entity.antarchy.mantis": "Богомол", + "entity.antarchy.alpha_mantis": "Альфа-богомол", + "entity.antarchy.triffid": "Триффид", + "entity.antarchy.toreterror": "Тортеррор", + "entity.antarchy.water_bomb": "Водяная бомба", + "subtitles.antarchy.mantis_ambient": "Богомол щёлкает", + "subtitles.antarchy.mantis_hurt": "Богомол визжит", + "subtitles.antarchy.mantis_attack": "Богомол кусает", + "subtitles.antarchy.mantis_fly_loop": "Крылья богомола жужжат", + "item.antarchy.big_bertha": "Большая Берта", + "item.antarchy.wasp_nest": "Осиное гнездо", + "item.antarchy.stink_bug": "Клоп-вонючка", + "item.antarchy.wasp_spawn_egg": "Яйцо призыва осы", + "item.antarchy.bomber_spawn_egg": "Яйцо призыва бомбардира", + "item.antarchy.big_bertha_blade": "Лезвие Большой Берты", + "item.antarchy.big_bertha_handle": "Рукоять Большой Берты", + "item.antarchy.big_bertha_hilt": "Эфес Большой Берты", + "item.antarchy.battle_axe": "Боевой топор", + "item.antarchy.cloud_shark_fin": "Плавник облачной акулы", + "item.antarchy.cloud_shark_fin_soup": "Суп из плавников облачной акулы", + "tooltip.antarchy.cloud_shark_fin_soup": "Даёт Силу и Плавное падение.", + "item.antarchy.kraken_tooth": "Зуб кракена", + "item.antarchy.basilisk_fang": "Клык василиска", + "item.antarchy.basilisk_dagger": "Кинжал василиска", + "item.antarchy.blood_crystal_block": "Блок кровавого кристалла", + "item.antarchy.small_blood_crystal_bud": "Малый бутон кровавого кристалла", + "item.antarchy.medium_blood_crystal_bud": "Средний бутон кровавого кристалла", + "item.antarchy.large_blood_crystal_bud": "Большой бутон кровавого кристалла", + "item.antarchy.blood_crystal_cluster": "Скопление кровавого кристалла", + "item.antarchy.dream_sand": "Песок сновидений", + "item.antarchy.dream_sandstone": "Песчаник сновидений", + "item.antarchy.chiseled_dream_sandstone": "Резной песчаник сновидений", + "item.antarchy.cut_dream_sandstone": "Пиленый песчаник сновидений", + "item.antarchy.smooth_dream_sandstone": "Гладкий песчаник сновидений", + "item.antarchy.dream_sandstone_stairs": "Ступени из песчаника сновидений", + "item.antarchy.dream_sandstone_slab": "Плита из песчаника сновидений", + "item.antarchy.dream_sandstone_wall": "Ограда из песчаника сновидений", + "item.antarchy.smooth_dream_sandstone_stairs": "Ступени из гладкого песчаника сновидений", + "item.antarchy.smooth_dream_sandstone_slab": "Плита из гладкого песчаника сновидений", + "item.antarchy.cut_dream_sandstone_slab": "Плита из пиленого песчаника сновидений", + "item.antarchy.dream_torch": "Факел сновидений", + "item.antarchy.dream_lantern": "Фонарь сновидений", + "item.antarchy.dream_campfire": "Костёр сновидений", + "item.antarchy.nightmare_scale": "Чешуйка кошмара", + "item.antarchy.nightmare_helmet": "Шлем кошмара", + "item.antarchy.nightmare_chestplate": "Нагрудник кошмара", + "item.antarchy.nightmare_leggings": "Поножи кошмара", + "item.antarchy.nightmare_boots": "Ботинки кошмара", + "item.antarchy.nightmare_sword": "Меч кошмара", + "tooltip.antarchy.nightmare_armor_double_damage": "%s%% шанс нанести двойной урон", + "tooltip.antarchy.nightmare_armor_set_bonus": "Полный комплект: Иммунитет к Иссушению и Ужасу", + "tooltip.antarchy.nightmare_sword": "Наносит больше урона по мере снижения вашего здоровья.", + "tooltip.antarchy.nightmare_sword_damage": "Наносит %s урона", + "tooltip.antarchy.primordial_helmet_water_breathing": "Даёт владельцу Подводное дыхание", + "tooltip.antarchy.primordial_armor_knockback_dealt": "Добавляет %s к отбрасыванию при атаке за каждый элемент", + "tooltip.antarchy.primordial_armor_set_bonus": "Полный комплект: Атаки игнорируют сопротивление отбрасыванию у врагов", + "attribute.antarchy.double_damage_chance": "Шанс двойного урона", + "attribute.antarchy.bloodglass_max_hearts": "Макс. сердец кровавого стекла", + "item.antarchy.molevore_nose": "Нос кротожора", + "item.antarchy.moleworm": "Кроточервь", + "item.antarchy.triffid_spawn_egg": "Яйцо призыва триффида", + "item.antarchy.infested_rooted_dirt": "Заражённая корнями земля", + "item.antarchy.infested_coarse_dirt": "Заражённая каменистая земля", + "item.antarchy.pale_nyxite": "Бледный никсит", + "item.antarchy.polished_nyxite": "Полированный никсит", + "item.antarchy.chiseled_nyxite": "Резной никсит", + "item.antarchy.nyxite_bricks": "Никситовые кирпичи", + "item.antarchy.shellstone": "Ракушечник", + "item.antarchy.polished_shellstone": "Полированный ракушечник", + "item.antarchy.shellstone_bricks": "Кирпичи из ракушечника", + "item.antarchy.chiseled_shellstone": "Резной ракушечник", + "item.antarchy.mossy_shellstone_bricks": "Замшелые кирпичи из ракушечника", + "item.antarchy.mossy_shellstone_brick_stairs": "Ступени из замшелого ракушечника", + "item.antarchy.mossy_shellstone_brick_slab": "Плита из замшелого ракушечника", + "item.antarchy.mossy_shellstone_brick_wall": "Ограда из замшелого ракушечника", + "item.antarchy.cracked_shellstone_bricks": "Потрескавшиеся кирпичи из ракушечника", + "item.antarchy.shellstone_stairs": "Ступени из ракушечника", + "item.antarchy.shellstone_slab": "Плита из ракушечника", + "item.antarchy.shellstone_wall": "Ограда из ракушечника", + "item.antarchy.polished_shellstone_stairs": "Ступени из полированного ракушечника", + "item.antarchy.polished_shellstone_slab": "Плита из полированного ракушечника", + "item.antarchy.polished_shellstone_wall": "Ограда из полированного ракушечника", + "item.antarchy.shellstone_brick_stairs": "Ступени из кирпичей ракушечника", + "item.antarchy.shellstone_brick_slab": "Плита из кирпичей ракушечника", + "item.antarchy.shellstone_brick_wall": "Ограда из кирпичей ракушечника", + "item.antarchy.nyxite_stairs": "Никситовые ступени", + "item.antarchy.nyxite_slab": "Никситовая плита", + "item.antarchy.nyxite_wall": "Никситовая ограда", + "item.antarchy.polished_nyxite_stairs": "Ступени из полированного никсита", + "item.antarchy.polished_nyxite_slab": "Плита из полированного никсита", + "item.antarchy.polished_nyxite_wall": "Ограда из полированного никсита", + "item.antarchy.nyxite_brick_stairs": "Ступени из никситового кирпича", + "item.antarchy.nyxite_brick_slab": "Плита из никситового кирпича", + "item.antarchy.nyxite_brick_wall": "Ограда из никситового кирпича", + "item.antarchy.potent_nyxite": "Насыщенный никсит", + "item.antarchy.antimetal": "Антиметалл", + "item.antarchy.polished_antimetal": "Полированный антиметалл", + "item.antarchy.antimetal_scaffolding": "Антиметаллические подмостки", + "item.antarchy.ouranwood_acorn": "Оурановый жёлудь", + "item.antarchy.ouranwood_boat": "Оурановая лодка", + "item.antarchy.ouranwood_chest_boat": "Оурановая лодка с сундуком", + "item.antarchy.raw_venison": "Сырая оленина", + "item.antarchy.cooked_venison": "Жареная оленина", + "item.antarchy.peach_sapling": "Саженец персикового дерева", + "item.antarchy.peach": "Персик", + "item.antarchy.peach_pie": "Персиковый пирог", + "item.antarchy.cornbread": "Кукурузный хлеб", + "item.antarchy.popcorn": "Попкорн", + "item.antarchy.peach_sign": "Персиковая табличка", + "item.antarchy.peach_hanging_sign": "Персиковая подвесная табличка", + "item.antarchy.peach_boat": "Персиковая лодка", + "item.antarchy.peach_chest_boat": "Персиковая лодка с сундуком", + "item.antarchy.orange_milkweed": "Оранжевый ваточник", + "item.antarchy.pink_milkweed": "Розовый ваточник", + "item.antarchy.camellia": "Камелия", + "item.antarchy.spider_lily": "Паучья лилия", + "item.antarchy.hushweed": "Тишь-трава", + "item.antarchy.umbral_moss_block": "Блок теневого мха", + "item.antarchy.umbral_moss_carpet": "Ковёр из теневого мха", + "item.antarchy.blush_moss_block": "Блок румяного мха", + "item.antarchy.blush_moss_carpet": "Ковёр из румяного мха", + "item.antarchy.mud_pie": "Грязевой пирог", + "item.antarchy.duct_tape": "Клейкая лента", + "item.antarchy.duct_tape.tooltip": "Разместите и нажмите ПКМ, чтобы починить инструменты", + "item.antarchy.rainbow_sugar": "Радужный сахар", + "item.antarchy.uranium_nugget": "Кусочек урана", + "item.antarchy.titanium_nugget": "Кусочек титана", + "item.antarchy.raw_uranium_scrap": "Осколок неочищенного урана", + "item.antarchy.raw_titanium_scrap": "Осколок неочищенного титана", + "item.antarchy.raw_uranium": "Неочищенный уран", + "item.antarchy.raw_titanium": "Неочищенный титан", + "item.antarchy.uranium_ingot": "Урановый слиток", + "item.antarchy.titanium_ingot": "Титановый слиток", + "item.antarchy.blood_crystal_shard": "Осколок кровавого кристалла", + "item.antarchy.blood_crystal_apple": "Яблоко кровавого кристалла", + "item.antarchy.blood_crystal_katana": "Катана из кровавого кристалла", + "item.antarchy.blood_crystal_helmet": "Шлем из кровавого кристалла", + "item.antarchy.blood_crystal_chestplate": "Нагрудник из кровавого кристалла", + "item.antarchy.blood_crystal_leggings": "Поножи из кровавого кристалла", + "item.antarchy.blood_crystal_boots": "Ботинки из кровавого кристалла", + "item.antarchy.blood_crystal_armor.tooltip": "Даёт Сердце кровавого стекла, которое блокирует один входящий удар, разбивается, а затем восстанавливается.", + "item.antarchy.blood_crystal_boots.tooltip2": "Отменяет урон от падения при падении вверх во время инверсии гравитации.", + "item.antarchy.blood_crystal_apple.tooltip": "Даёт Защиту кровавого стекла, предоставляя временные Сердца кровавого стекла, которые восстанавливаются, пока длится эффект.", + "tooltip.antarchy.blood_crystal_katana.launch": "Толкает вас вперёд при ударе.", + "tooltip.antarchy.blood_crystal_katana.trail": "Оставляет за вами багровый след.", + "item.antarchy.mantis_claw": "Клешня богомола", + "item.antarchy.king_scale": "Чешуйка короля", + "item.antarchy.queen_scale": "Чешуйка королевы", + "item.antarchy.jumpy_bug_leg": "Ножка прыгучего жука", + "item.antarchy.jumpy_boots": "Прыгучие ботинки", + "tooltip.antarchy.jumpy_boots": "Зажмите Shift, чтобы зарядить, затем прыгните, чтобы взмыть вверх.", + "item.antarchy.brutalfly_wing": "Крыло жестококрыла", + "item.antarchy.brutalfly_elytra": "Элитры жестококрыла", + "tooltip.antarchy.brutalfly_elytra.flap": "Во время полёта зажмите %s, чтобы махать крыльями", + "item.antarchy.cornea_ear": "Глазной початок", + "item.antarchy.corn": "Кукуруза", + "item.antarchy.corn_seeds": "Семена кукурузы", + "item.antarchy.raw_corndog": "Сырой корндог", + "item.antarchy.cooked_corndog": "Готовый корндог", + "item.antarchy.high_fructose_corn_syrup": "Кукурузный сироп", + "jei.antarchy.americanize": "Американизировать", + "item.antarchy.american_name": "Американский %s", + "item.antarchy.root_beer": "Рутбир", + "item.antarchy.primordial_scute": "Первобытный щиток", + "item.antarchy.triffid_goo": "Слизь триффида", + "item.antarchy.triffid_goo_block": "Блок слизи триффида", + "tooltip.antarchy.triffid_goo_block": "При высокой скорости отталкивает вверх, иначе засасывает.", + "item.antarchy.cloud_bucket": "Ведро облаков", + "tooltip.antarchy.cloud_bucket.midair": "Можно разместить прямо в воздухе", + "item.antarchy.lumen_bucket": "Ведро люмена", + "item.antarchy.scorpion_whip": "Хлыст императорского скорпиона", + "tooltip.antarchy.scorpion_whip.lash": "Атакует жертву издалека и внедряет ядовитую привязь.", + "tooltip.antarchy.scorpion_whip.reel": "Нажмите ПКМ, чтобы притянуть привязанную добычу.", + "tooltip.antarchy.scorpion_whip.snap": "Нажмите ЛКМ по привязанной добыче, чтобы вырвать жало.", + "item.antarchy.fallen_king_crown": "Корона павшего короля", + "tooltip.antarchy.fallen_king_crown.hero": "Даёт эффект «Герой деревни» при убийстве враждебных мобов", + "item.antarchy.vortex_eye": "Око вихря", + "item.antarchy.ultimate_helmet": "Ультимативный шлем", + "item.antarchy.ultimate_chestplate": "Ультимативный нагрудник", + "item.antarchy.ultimate_leggings": "Ультимативные поножи", + "item.antarchy.ultimate_boots": "Ультимативные ботинки", + "item.antarchy.ultimate_sword": "Ультимативный меч", + "item.antarchy.ultimate_pickaxe": "Ультимативная кирка", + "item.antarchy.ultimate_axe": "Ультимативный топор", + "item.antarchy.ultimate_shovel": "Ультимативная лопата", + "item.antarchy.ultimate_hoe": "Ультимативная мотыга", + "item.antarchy.ultimate_bow": "Ультимативный лук", + "item.antarchy.ultimate_crossbow": "Ультимативный арбалет", + "item.antarchy.ultimate_crossbow.capacity": "Заряжает до 16 стрел одновременно", + "item.antarchy.ultimate_crossbow.arrows_remaining": "%1$s %2$s заряжено", + "item.antarchy.ultimate_mace": "Ультимативная булава", + "item.antarchy.moggles": "Могглы", + "itemGroup.antarchy.antarchy": "Antarchy", + "item.antarchy.bile_bucket": "Ведро желчи", + "item.antarchy.ichor_bucket": "Ведро ихора", + "item.antarchy.antiwater_bucket": "Ведро антиводы", + "item.antarchy.reverie_bottle": "Бутылочка с грёзой", + "item.antarchy.squidzooka": "Сквидзука", + "item.antarchy.shrink_ray": "Уменьшитель", + "item.antarchy.growth_ray": "Увеличитель", + "tooltip.antarchy.shrink_ray": "Навсегда уменьшает цель. Зажмите, чтобы зарядить.", + "tooltip.antarchy.growth_ray": "Навсегда увеличивает цель. Зажмите, чтобы зарядить.", + "tooltip.antarchy.reverie_bottle.capture": "Нажмите ПКМ стеклянной бутылочкой по грёзе, чтобы поймать её.", + "tooltip.antarchy.reverie_bottle.release": "Нажмите ПКМ, чтобы выпустить грёзу.", + "item.antarchy.gravity_gun": "Гравитационная пушка", + "item.antarchy.miners_dream": "Мечта шахтёра", + "tooltip.antarchy.miners_dream.line1": "Нажмите ПКМ, чтобы вырезать извилистую пещеру.", + "tooltip.antarchy.miners_dream.line2": "Оставляет ценные блоки нетронутыми.", + "message.antarchy.miners_dream_disabled": "Мечта шахтёра отключена.", + "message.antarchy.miners_dream_busy": "Ваша предыдущая мечта всё ещё воплощается.", + "item.antarchy.diamond_minecart": "Алмазная вагонетка", + "item.antarchy.cogwheel_pet": "Шестерёнка-питомец", + "item.antarchy.fire_dragon_pet": "Огненный дракон-питомец", + "item.antarchy.ice_dragon_pet": "Ледяной дракон-питомец", + "item.antarchy.lightning_dragon_pet": "Электрический дракон-питомец", + "item.antarchy.gorgon_pet": "Горгона-питомец", + "item.antarchy.apple_cow_spawn_egg": "Яйцо призыва яблочной коровы", + "item.antarchy.red_ant_spawn_egg": "Яйцо призыва красного муравья", + "item.antarchy.brown_ant_spawn_egg": "Яйцо призыва коричневого муравья", + "item.antarchy.rainbow_ant_spawn_egg": "Яйцо призыва радужного муравья", + "item.antarchy.golden_apple_cow_spawn_egg": "Яйцо призыва золотой яблочной коровы", + "item.antarchy.enchanted_golden_apple_cow_spawn_egg": "Яйцо призыва зачарованной золотой яблочной коровы", + "item.antarchy.dr_trayaurus_spawn_egg": "Яйцо призыва доктора Траяуруса", + "item.antarchy.easter_bunny_spawn_egg": "Яйцо призыва пасхального кролика", + "item.antarchy.glimmer_spawn_egg": "Яйцо призыва блика", + "item.antarchy.ouranwood_deer_spawn_egg": "Яйцо призыва оуранового оленя", + "item.antarchy.spirit_apple": "Духовное яблоко", + "item.antarchy.elka_spawn_egg": "Яйцо призыва Элки", + "item.antarchy.glimmer_bottle": "Бутылочка с бликом", + "item.antarchy.glimmer_bottle.contains": "Содержит: %s", + "glimmer_variant.antarchy.apple_cow": "Яблочная корова", + "glimmer_variant.antarchy.ouranwood_deer": "Оурановый олень", + "glimmer_variant.antarchy.frog": "Жаба", + "glimmer_variant.antarchy.ant": "Муравей", + "glimmer_variant.antarchy.elka": "Элка", + "entity.antarchy.glimmer.set_sit": "Блик теперь сидит.", + "entity.antarchy.glimmer.set_follow": "Блик теперь следует за вами.", + "entity.antarchy.glimmer.set_wander": "Блик теперь бродит.", + "entity.antarchy.glimmer.ability.ant": "Ваш муравей натравливает вас на %s!", + "entity.antarchy.glimmer.ability.apple_cow": "Ваша яблочная корова мычит и кормит вас!", + "entity.antarchy.glimmer.ability.elka": "Ваша Элка издаёт крик и разрушает защиту!", + "entity.antarchy.glimmer.ability.deer": "Ваш оурановый олень проносится сквозь врага!", + "entity.antarchy.glimmer.ability.frog": "Ваша жаба проглотила %s!", + "item.antarchy.glimmer_bottle.passive.apple_cow": "Пассивный эффект: Голод тратится на 25% медленнее", + "item.antarchy.glimmer_bottle.ability.apple_cow": "Способность: Мычит и даёт Насыщение и Регенерацию, когда у вас мало еды", + "item.antarchy.glimmer_bottle.passive.ouranwood_deer": "Пассивный эффект: Скорость I", + "item.antarchy.glimmer_bottle.ability.ouranwood_deer": "Способность: Прорывается сквозь враждебных мобов, когда вы бежите на них, подкидывая их в воздух", + "item.antarchy.glimmer_bottle.passive.frog": "Пассивный эффект: Прыгучесть I", + "item.antarchy.glimmer_bottle.ability.frog": "Способность: Пожирает ближайшего враждебного моба, становясь больше и сильнее на время", + "item.antarchy.glimmer_bottle.passive.ant": "Пассивный эффект: Слегка увеличенная дальность атаки", + "item.antarchy.glimmer_bottle.ability.ant": "Способность: Удар по крупному врагу даёт вам кратковременную Силу II", + "item.antarchy.glimmer_bottle.passive.elka": "Пассивный эффект: Защита кровавого стекла II", + "item.antarchy.glimmer_bottle.ability.elka": "Способность: Кричит и вызывает ударную волну при разрушении одного из сердец защиты", + "advancements.antarchy.spirant_animal.title": "Муравьиная душа", + "advancements.antarchy.spirant_animal.description": "Приручите муравья-блика", + "advancements.antarchy.hoppy_together.title": "Вместе веселее", + "advancements.antarchy.hoppy_together.description": "Приручите жабу-блика", + "advancements.antarchy.deerly_beloved.title": "Дорогой олень", + "advancements.antarchy.deerly_beloved.description": "Приручите оленя-блика", + "advancements.antarchy.elkcellent_choice.title": "Отличный выбор", + "advancements.antarchy.elkcellent_choice.description": "Приручите Элку-блика", + "advancements.antarchy.apple_of_my_eye.title": "Яблоко от яблони", + "advancements.antarchy.apple_of_my_eye.description": "Приручите корову-блика", + "item.antarchy.dorrie_spawn_egg": "Яйцо призыва Дорри", + "item.antarchy.flying_squirrel_spawn_egg": "Яйцо призыва белки-летяги", + "item.antarchy.caterpillar_spawn_egg": "Яйцо призыва гусеницы", + "item.antarchy.butterfly_spawn_egg": "Яйцо призыва бабочки", + "item.antarchy.brutalfly_spawn_egg": "Яйцо призыва жестококрыла", + "item.antarchy.cloud_shark_spawn_egg": "Яйцо призыва облачной акулы", + "item.antarchy.kraken_spawn_egg": "Ох, нет. Не стоит.", + "item.antarchy.missile_squid_spawn_egg": "Яйцо призыва кальмара-ракеты", + "item.antarchy.octopus_bomb_spawn_egg": "Яйцо призыва осьминога-бомбы", + "item.antarchy.nightmare_spawn_egg": "Яйцо призыва кошмара", + "item.antarchy.toreterror_spawn_egg": "Яйцо призыва тортеррора", + "item.antarchy.water_cannon": "Водяная пушка", + "item.antarchy.primordial_helmet": "Первобытный шлем", + "item.antarchy.primordial_chestplate": "Первобытный нагрудник", + "item.antarchy.primordial_leggings": "Первобытные поножи", + "item.antarchy.primordial_boots": "Первобытные ботинки", + "item.antarchy.bed_bug_spawn_egg": "Яйцо призыва постельного клопа", + "item.antarchy.moleworm_spawn_egg": "Яйцо призыва кроточервя", + "item.antarchy.molevore_spawn_egg": "Яйцо призыва кротожора", + "item.antarchy.reverie_spawn_egg": "Яйцо призыва грёзы", + "item.antarchy.mantis_spawn_egg": "Яйцо призыва богомола", + "item.antarchy.alpha_mantis_spawn_egg": "Яйцо призыва альфа-богомола", + "biome.antarchy.moleworm_caves": "Пещеры кроточервей", + "biome.antarchy.butterfly_fields": "Поля бабочек", + "biome.antarchy.ouranwood_forest": "Оурановый лес", + "biome.antarchy.glimmering_pools": "Мерцающие пруды", + "biome.antarchy.peach_forest": "Персиковый лес", + "biome.antarchy.fungal_ouranwood_forest": "Грибной оурановый лес", + "message.antarchy.brown_ant_activated": "Коричневый муравей готов открыть путь в свой мир.", + "message.antarchy.brown_ant_needs_reagent": "Этому коричневому муравью нужен реагент, чтобы открыть путь в свой мир.", + "message.antarchy.rainbow_ant_activated": "Радужный муравей гудит новым измерением из Infinity.", + "message.antarchy.rainbow_ant_activated_inherited": "Радужный муравей гудит унаследованным измерением из Infinity.", + "message.antarchy.rainbow_ant_activated_inherited_existing": "Радужный муравей переподключается к унаследованному измерению Infinity.", + "message.antarchy.rainbow_ant_failed_dimension_create": "Не удалось создать измерение. Вероятно, ошибка в конфигурации мода Infinity. Перезапустите игру и попробуйте снова.", + "message.antarchy.rainbow_ant_infinity_missing": "Мод Infinity должен быть установлен, чтобы миры радужных муравьёв работали.", + "message.antarchy.rainbow_ant_needs_reagent": "Этому радужному муравью нужен реагент, чтобы открыть измерение.", + "message.antarchy.red_ant_activated": "Красный муравей готов открыть путь в свой мир.", + "message.antarchy.red_ant_needs_reagent": "Этому красному муравью нужен реагент, чтобы открыть путь в свой мир.", + "message.antarchy.termite_activated": "Термит готов открыть путь к своей цели.", + "message.antarchy.termite_needs_reagent": "Этому термиту нужен реагент, чтобы открыть путь к своей цели.", + "message.antarchy.big_bertha.mode": "Режим Большой Берты: %s", + "message.antarchy.big_bertha.mode.basilisk": "Василиск", + "message.antarchy.big_bertha.mode.lucid": "Люцид", + "message.antarchy.big_bertha.mode.nightmare": "Кошмар", + "message.antarchy.big_bertha.mode.kraken": "Кракен", + "message.antarchy.big_bertha.mode.molevore": "Кротожор", + "message.antarchy.big_bertha.mode.toreterror": "Тортеррор", + "message.antarchy.ultimate_tool.mode_3x3": "Включено копание 3x3", + "message.antarchy.ultimate_tool.mode_default": "Включено обычное копание", + "advancements.antarchy.hey_listen.title": "Эй, послушай", + "advancements.antarchy.hey_listen.description": "К вам присоединилась грёза.", + "advancements.antarchy.very_hungry_caterpillar.title": "Очень голодная гусеница", + "advancements.antarchy.very_hungry_caterpillar.description": "Помогите гусенице вырасти.", + "effect.antarchy.dread": "Ужас", + "effect.antarchy.paralyzed": "Паралич", + "effect.antarchy.inverted": "Инверсия", + "effect.antarchy.stinky": "Вонючесть", + "effect.antarchy.shrinking": "Уменьшение", + "effect.antarchy.growth": "Увеличение", + "effect.antarchy.bloodglass_ward": "Защита кровавого стекла", + "death.attack.triffid_mauling": "%1$s был растерзан растением", + "death.attack.triffid_mauling.player": "%1$s был растерзан растением", + "death.attack.triffid_swallow": "%1$s был проглочен триффидом", + "death.attack.triffid_swallow.player": "%1$s был проглочен триффидом", + "potion.antarchy.haste": "Зелье спешки", + "potion.antarchy.strong_haste": "Мощное зелье спешки", + "tooltip.antarchy.big_bertha.mode": "Режим: %s", + "tooltip.antarchy.big_bertha.toggle_mode": "Shift + ПКМ для переключения режимов босса.", + "tooltip.antarchy.big_bertha.mode.basilisk": "ПКМ парализует цель. Удары накладывают отравление и замедление.", + "tooltip.antarchy.big_bertha.mode.lucid": "Удары инвертируют цель на несколько секунд. Удары наносят больше урона, когда вы инвертированы.", + "tooltip.antarchy.big_bertha.mode.nightmare": "Игроки страдают от Ужаса; удары накладывают слабость.", + "tooltip.antarchy.big_bertha.mode.kraken": "Удары отбрасывают цели и вызывают молнию.", + "tooltip.antarchy.big_bertha.mode.molevore": "ПКМ для рывка вперёд и бурения сквозь блоки кротожора.", + "tooltip.antarchy.big_bertha.mode.toreterror": "ПКМ запускает вас в воздух и обрушивает вниз с ударной волной по площади.", + "tooltip.antarchy.ultimate_tools_3x3": "Shift + ПКМ для переключения режима копания 3x3.", + "tooltip.antarchy.moggles.reveal": "Дают ночное зрение и указывают на ближайшие пещеры.", + "tooltip.antarchy.moggles.underground": "Работает только если над вами нет открытого неба.", + "tooltip.antarchy.cornea_ear.vision": "Даёт Ночное зрение на %s секунд.", + "tooltip.antarchy.mob_coming_soon": "Моб появится в будущем!", + "tooltip.antarchy.gravity_gun.primary": "ЛКМ: отбрасывает ближайших сущностей или бросает удерживаемую цель.", + "tooltip.antarchy.gravity_gun.secondary": "ПКМ: притягивает сущность или подходящий блок.", + "tooltip.antarchy.gravity_gun.scroll": "Удерживайте Ctrl и крутите колёсико мыши, чтобы приблизить или отдалить удерживаемую цель.", + "tooltip.antarchy.gravity_gun.blacklist": "Не действует на блоки и сущности из чёрного списка.", + "tooltip.antarchy.antimetal_inversion": "Инвертирует сущности прямо под собой", + "tooltip.antarchy.diamond_minecart.forward": "Будет добавлено позже.", + "tooltip.antarchy.diamond_minecart.rails": " ", + "tooltip.antarchy.rainbow_sugar": "Активирует измерения радужного муравья. Съешьте, находясь в нём, чтобы вернуться домой.", + "advancements.antarchy.visit_elythia.title": "Межмуравьиное пространство", + "advancements.antarchy.visit_elythia.description": "Используйте коричневого муравья, чтобы попасть в Элитию.", + "advancements.antarchy.visit_thoraxis.title": "Муравьиный гнев", + "advancements.antarchy.visit_thoraxis.description": "Используйте красного муравья, чтобы попасть в Тораксис.", + "advancements.antarchy.fallen_kingdom_castle.title": "Я когда-то правил миром...", + "advancements.antarchy.fallen_kingdom_castle.description": "Найдите замок падшего королевства.", + "advancements.antarchy.fallen_king_crown.title": "Чанки грузились по моему приказу...", + "advancements.antarchy.fallen_king_crown.description": "Добудьте корону павшего короля.", + "advancements.antarchy.the_lab.title": "Всем привет, с вами Дэн!", + "advancements.antarchy.the_lab.description": "Найдите лабораторию доктора Траяуруса.", + "advancements.antarchy.sweater_dreams.title": "Тёплые сны", + "advancements.antarchy.sweater_dreams.description": "Победите Кошмара.", + "advancements.antarchy.stone_cold.title": "Холодный как камень", + "advancements.antarchy.stone_cold.description": "Победите василиска.", + "advancements.antarchy.moley_poley.title": "Кротовьи забавы", + "advancements.antarchy.moley_poley.description": "Победите кротожора.", + "advancements.antarchy.lucid_dreams.title": "Осознанные сновидения", + "advancements.antarchy.lucid_dreams.description": "Победите люцида.", + "advancements.antarchy.davy_jones_locker.title": "Тайник Дэйви Джонса", + "advancements.antarchy.davy_jones_locker.description": "Победите кракена.", + "advancements.antarchy.shark_weak.title": "Когда акулы полетят", + "advancements.antarchy.shark_weak.description": "Победите облачную акулу.", + "advancements.antarchy.dont_let_the_bed_bugs_bite.title": "И пусть клопы не кусают", + "advancements.antarchy.dont_let_the_bed_bugs_bite.description": "Победите постельного клопа.", + "advancements.antarchy.soups_up.title": "Суп готов", + "advancements.antarchy.soups_up.description": "Съешьте суп из плавников облачной акулы.", + "advancements.antarchy.in_the_upside_down.title": "Вверх тормашками", + "advancements.antarchy.in_the_upside_down.description": "Окажитесь под эффектом инверсии впервые.", + "advancements.antarchy.whoever_smelt_it_dealt_it.title": "Кто унюхал, тот и пукнул", + "advancements.antarchy.whoever_smelt_it_dealt_it.description": "Окажитесь вонючим в первый раз.", + "advancements.antarchy.ultimate_armor.title": "Абсолютная защита", + "advancements.antarchy.ultimate_armor.description": "Соберите полный комплект ультимативной брони.", + "advancements.antarchy.ultimate_bow.title": "Богемская рапсодия", + "advancements.antarchy.ultimate_bow.description": "Добудьте ультимативный лук.", + "advancements.antarchy.brutalfly.title": "Порхай как жестококрыл, жаль как пчела", + "advancements.antarchy.brutalfly.description": "Получите элитры жестококрыла.", + "advancements.antarchy.now_watch_me_whip.title": "А теперь смотри", + "advancements.antarchy.now_watch_me_whip.description": "А теперь смотри, как я делаю нэй-нэй", + "advancements.antarchy.kill_molevore.title": "Кротовьи забавы", + "advancements.antarchy.kill_molevore.description": "Убейте кротожора.", + "advancements.antarchy.water_cannon_craft.title": "Мокрее — лучше!", + "advancements.antarchy.water_cannon_craft.description": "Создайте водяную пушку.", + "advancements.antarchy.kill_toreterror.title": "Тортеррор сбежал!", + "advancements.antarchy.kill_toreterror.description": "Победите тортеррора.", + "advancements.antarchy.challenge_games.title": "Испытания начинаются!", + "advancements.antarchy.challenge_games.description": "Войдите на Разрушенную арену.", + "advancements.antarchy.bugged_out.title": "Жук-переросток", + "advancements.antarchy.bugged_out.description": "Победите альфа-богомола.", + "death.attack.bed_bug_bite": "%1$s был покусан постельными клопами", + "death.attack.bed_bug_bite.player": "%1$s был покусан постельными клопами во время сражения с %2$s", + "message.antarchy.dread_too_scared_to_sleep": "Вы слишком напуганы, чтобы уснуть.", + "death.attack.kraken_mauling": "%1$s был затянут на дно кракеном", + "death.attack.kraken_mauling.player": "%1$s был затянут на дно кракеном во время сражения с %2$s", + "death.attack.kraken_lightning": "%1$s был поражён штормом кракена", + "death.attack.kraken_lightning.player": "%1$s был поражён штормом кракена во время сражения с %2$s", + "death.attack.nightmare_mauling": "%1$s был сожран кошмаром", + "death.attack.nightmare_mauling.player": "%1$s был сожран кошмаром во время сражения с %2$s", + "death.attack.basilisk_bite": "%1$s был проглочен василиском", + "death.attack.basilisk_bite.player": "%1$s был проглочен василиском во время сражения с %2$s", + "death.attack.emperor_scorpion_sting": "%1$s был ужален императорским скорпионом", + "death.attack.emperor_scorpion_sting.player": "%1$s был ужален императорским скорпионом во время сражения с %2$s", + "death.attack.cornea_stalk_prick": "%1$s был заколот насмерть глазным стеблем", + "death.attack.toreterror_spin": "%1$s был закручен до смерти тортеррором", + "death.attack.toreterror_spin.player": "%1$s был закручен до смерти тортеррором", + "death.attack.toreterror_jump": "%1$s был раздавлен насмерть тортеррором", + "death.attack.toreterror_jump.player": "%1$s был раздавлен насмерть тортеррором", + "death.attack.water_soaked": "%1$s был намочен до смерти сущностью %2$s", + "death.attack.water_soaked.player": "%1$s был намочен до смерти сущностью %2$s", + "entity.antarchy.lucid": "Люцид", + "item.antarchy.lucid_spawn_egg": "Яйцо призыва люцида", + "item.antarchy.lucid_eye": "Глаз люцида", + "entity.antarchy.scorpion": "Скорпион", + "item.antarchy.scorpion_spawn_egg": "Яйцо призыва скорпиона", + "entity.antarchy.basilisk": "Василиск", + "item.antarchy.basilisk_spawn_egg": "Яйцо призыва василиска", + "entity.antarchy.emperor_scorpion": "Императорский скорпион", + "item.antarchy.emperor_scorpion_spawn_egg": "Яйцо призыва императорского скорпиона", + "item.antarchy.emperor_scorpion_stinger": "Жало императорского скорпиона", + "item.antarchy.lucid_pearl": "Жемчуг люцида", + "tooltip.antarchy.lucid_pearl": "Бросает снаряд, инвертирующий гравитацию.", + "tooltip.antarchy.lucid_pearl.detail": "Телепортирует вас в точку падения и накладывает Инверсию.", + "subtitles.antarchy.squidzooka_fire": "Сквидзука стреляет", + "subtitles.antarchy.shrink_ray": "Уменьшитель стреляет", + "subtitles.antarchy.growth_ray": "Увеличитель стреляет", + "subtitles.antarchy.size_ray_charge": "Лучевое ружьё заряжается", + "subtitles.antarchy.ant_ambient": "Муравьи стрекочут", + "subtitles.antarchy.ant_idle": "Муравьи шевелятся", + "subtitles.antarchy.ant_hurt": "Муравью больно", + "subtitles.antarchy.ant_bite": "Муравьи кусают", + "subtitles.antarchy.ant_gather": "Муравьи собираются", + "subtitles.antarchy.ant_nest": "Муравейник шуршит", + "subtitles.antarchy.cloud_shark_bite": "Облачная акула кусает", + "subtitles.antarchy.cloud_shark_idle": "Облачная акула парит", + "subtitles.antarchy.cloud_shark_hurt": "Облачной акуле больно", + "subtitles.antarchy.cloud_shark_death": "Облачная акула умирает", + "subtitles.antarchy.cloud_shark_fly": "Облачная акула летит", + "subtitles.antarchy.caterpillar_idle": "Гусеница шевелится", + "subtitles.antarchy.caterpillar_hurt": "Гусенице больно", + "subtitles.antarchy.caterpillar_crawl": "Гусеница ползёт", + "subtitles.antarchy.butterfly_hurt": "Бабочке больно", + "subtitles.antarchy.brutalfly_idle": "Жестококрыл парит", + "subtitles.antarchy.brutalfly_death": "Жестококрыл умирает", + "subtitles.antarchy.thoraxis_nightmare_wastes_ambient": "Пустоши кошмара гудят", + "subtitles.antarchy.thoraxis_nightmare_wastes_additions": "Пустоши кошмара волнуются", + "subtitles.antarchy.thoraxis_nightmare_wastes_mood": "Пустоши кошмара шепчут", + "subtitles.antarchy.thoraxis_dream_dunes_ambient": "Дюны сновидений шепчут", + "subtitles.antarchy.thoraxis_dream_dunes_additions": "Дюны сновидений шуршат", + "subtitles.antarchy.thoraxis_dream_dunes_mood": "Дюны сновидений вздыхают", + "subtitles.antarchy.thoraxis_lucid_pools_ambient": "Пруды люцидов гудят", + "subtitles.antarchy.thoraxis_lucid_pools_additions": "Пруды люцидов зловеще шумят", + "subtitles.antarchy.thoraxis_lucid_pools_mood": "Пруды люцидов бормочут", + "subtitles.antarchy.lucid_ambient": "Люцид гудит", + "subtitles.antarchy.lucid_flying": "Люцид порхает", + "subtitles.antarchy.lucid_attack": "Люцид атакует", + "subtitles.antarchy.lucid_bolt": "Люцид стреляет", + "subtitles.antarchy.lucid_hurt": "Люциду больно", + "subtitles.antarchy.lucid_death": "Люцид умирает", + "subtitles.antarchy.reverie_idle": "Грёза дрейфует", + "subtitles.antarchy.reverie_hurt": "Грёзе больно", + "subtitles.antarchy.reverie_worry": "Грёза тревожится", + "subtitles.antarchy.reverie_save": "Грёза спасает вас", + "subtitles.antarchy.reverie_join_player": "Грёза присоединяется к вам", + "subtitles.antarchy.reverie_alert": "Грёза предупреждает вас", + "subtitles.antarchy.flying_squirrel_idle": "Белка-летяга щебечет", + "subtitles.antarchy.flying_squirrel_beg": "Белка-летяга просит еду", + "subtitles.antarchy.flying_squirrel_nut": "Белка-летяга ест", + "subtitles.antarchy.flying_squirrel_glide_loop": "Белка-летяга парит", + "subtitles.antarchy.flying_squirrel_hurt": "Белке-летяге больно", + "subtitles.antarchy.flying_squirrel_death": "Белка-летяга умирает", + "subtitles.antarchy.nightmare_idle": "Кошмар рычит", + "subtitles.antarchy.nightmare_hurt": "Кошмару больно", + "subtitles.antarchy.nightmare_roar": "Кошмар ревёт", + "subtitles.antarchy.nightmare_death": "Кошмар умирает", + "subtitles.antarchy.nightmare_bite": "Кошмар кусает", + "subtitles.antarchy.nightmare_flap": "Кошмар машет крыльями", + "subtitles.antarchy.triffid_attack": "Триффид атакует", + "subtitles.antarchy.triffid_grab": "Триффид хватает", + "subtitles.antarchy.triffid_hurt": "Триффиду больно", + "subtitles.antarchy.triffid_death": "Триффид умирает", + "subtitles.antarchy.triffid_hiss": "Триффид шипит", + "subtitles.antarchy.triffid_growl": "Триффид урчит", + "subtitles.antarchy.gravity_gun_pickup": "Пушка притягивает", + "subtitles.antarchy.gravity_gun_drop": "Пушка отпускает", + "subtitles.antarchy.gravity_gun_hold_loop": "Пушка гудит", + "subtitles.antarchy.gravity_gun_launch": "Пушка стреляет", + "subtitles.antarchy.gravity_gun_dryfire": "Осечка пушки", + "subtitles.antarchy.bed_bug_ambient": "Постельный клоп стрекочет", + "subtitles.antarchy.bed_bug_hurt": "Постельному клопу больно", + "subtitles.antarchy.bed_bug_attack": "Постельный клоп кусает", + "subtitles.antarchy.wasp_idle": "Оса жужжит", + "subtitles.antarchy.wasp_hurt": "Осе больно", + "subtitles.antarchy.wasp_attack": "Оса жалит", + "subtitles.antarchy.wasp_death": "Оса умирает", + "subtitles.antarchy.scorpion_ambient": "Скорпион гремит", + "subtitles.antarchy.scorpion_hurt": "Скорпиону больно", + "subtitles.antarchy.scorpion_attack": "Скорпион атакует", + "subtitles.antarchy.emperor_scorpion_ambient": "Императорский скорпион гремит", + "subtitles.antarchy.emperor_scorpion_hurt": "Императорскому скорпиону больно", + "subtitles.antarchy.emperor_scorpion_attack": "Императорский скорпион атакует", + "subtitles.antarchy.emperor_scorpion_roar": "Императорский скорпион ревёт", + "subtitles.antarchy.moleworm_ambient": "Кроточервь шуршит", + "subtitles.antarchy.moleworm_hurt": "Кроточервю больно", + "subtitles.antarchy.moleworm_attack": "Кроточервь атакует", + "subtitles.antarchy.moleworm_dig": "Кроточервь копает", + "subtitles.antarchy.molevore_ambient": "Кротожор урчит", + "subtitles.antarchy.molevore_hurt": "Кротожору больно", + "subtitles.antarchy.molevore_attack": "Кротожор атакует", + "subtitles.antarchy.molevore_dig": "Кротожор копает", + "subtitles.antarchy.duct_tape_use": "Лента рвётся", + "subtitles.antarchy.potent_nyxite_hypnotic_gas": "Насыщенный никсит шипит", + "subtitles.antarchy.potent_nyxite_geyser_eruption": "Насыщенный никсит извергается", + "subtitles.antarchy.potent_nyxite_geyser_continuous": "Гейзер насыщенного никсита ревёт", + "subtitles.antarchy.missile_squid_ambient": "Кальмар-ракета гудит", + "subtitles.antarchy.missile_squid_hurt": "Кальмару-ракете больно", + "subtitles.antarchy.missile_squid_death": "Кальмар-ракета умирает", + "subtitles.antarchy.missile_squid_attack": "Кальмар-ракета атакует", + "subtitles.antarchy.kraken_flying_loop": "Кракен парит", + "subtitles.antarchy.kraken_flying_sideways_loop": "Кракен кружит", + "subtitles.antarchy.kraken_attack": "Кракен бьёт", + "subtitles.antarchy.kraken_spin": "Кракен вращается", + "subtitles.antarchy.kraken_roar": "Кракен ревёт", + "subtitles.antarchy.kraken_summon": "Кракен появляется", + "subtitles.antarchy.kraken_hurt": "Кракену больно", + "subtitles.antarchy.kraken_death": "Кракен умирает", + "subtitles.antarchy.basilisk_idle_loop": "Василиск шипит", + "subtitles.antarchy.basilisk_slither_loop": "Василиск ползёт", + "subtitles.antarchy.basilisk_bite": "Василиск кусает", + "subtitles.antarchy.basilisk_hiss": "Василиск шипит", + "subtitles.antarchy.basilisk_hurt": "Василиску больно", + "subtitles.antarchy.basilisk_death": "Василиск умирает", + "subtitles.antarchy.bomber_walk": "Бомбардир идёт", + "subtitles.antarchy.bomber_knock": "Бомбардир получает удар", + "subtitles.antarchy.bomber_explode": "Фитиль бомбардира шипит", + "subtitles.antarchy.toreterror_idle": "Тортеррор дышит", + "subtitles.antarchy.toreterror_hurt": "Тортеррору больно", + "subtitles.antarchy.toreterror_death": "Тортеррор умирает", + "subtitles.antarchy.toreterror_bomber_fire": "Тортеррор выпускает бомбардиров", + "subtitles.antarchy.toreterror_spin": "Тортеррор крутится", + "subtitles.antarchy.toreterror_ricochet": "Тортеррор рикошетит", + "subtitles.antarchy.water_cannon_fire": "Водяная пушка стреляет", + "subtitles.antarchy.toreterror_jump_up": "Тортеррор прыгает", + "subtitles.antarchy.toreterror_jump_land": "Тортеррор приземляется", + "subtitles.antarchy.stinky_fly": "Вонючие мухи жужжат", + "item.minecraft.potion.effect.inversion": "Зелье инверсии", + "item.minecraft.potion.effect.long_inversion": "Зелье инверсии", + "item.minecraft.splash_potion.effect.inversion": "Взрывное зелье инверсии", + "item.minecraft.splash_potion.effect.long_inversion": "Взрывное зелье инверсии", + "item.minecraft.lingering_potion.effect.inversion": "Туманное зелье инверсии", + "item.minecraft.lingering_potion.effect.long_inversion": "Туманное зелье инверсии", + "item.minecraft.tipped_arrow.effect.inversion": "Стрела инверсии", + "item.minecraft.tipped_arrow.effect.long_inversion": "Стрела инверсии", + "item.minecraft.potion.effect.paralysis": "Зелье паралича", + "item.minecraft.potion.effect.long_paralysis": "Зелье паралича", + "item.minecraft.splash_potion.effect.paralysis": "Взрывное зелье паралича", + "item.minecraft.splash_potion.effect.long_paralysis": "Взрывное зелье паралича", + "item.minecraft.lingering_potion.effect.paralysis": "Туманное зелье паралича", + "item.minecraft.lingering_potion.effect.long_paralysis": "Туманное зелье паралича", + "item.minecraft.tipped_arrow.effect.paralysis": "Стрела паралича", + "item.minecraft.tipped_arrow.effect.long_paralysis": "Стрела паралича", + "item.minecraft.potion.effect.shrinking": "Зелье уменьшения", + "item.minecraft.potion.effect.strong_shrinking": "Зелье уменьшения II", + "item.minecraft.potion.effect.extreme_shrinking": "Зелье уменьшения III", + "item.minecraft.splash_potion.effect.shrinking": "Взрывное зелье уменьшения", + "item.minecraft.splash_potion.effect.strong_shrinking": "Взрывное зелье уменьшения II", + "item.minecraft.splash_potion.effect.extreme_shrinking": "Взрывное зелье уменьшения III", + "item.minecraft.lingering_potion.effect.shrinking": "Туманное зелье уменьшения", + "item.minecraft.lingering_potion.effect.strong_shrinking": "Туманное зелье уменьшения II", + "item.minecraft.lingering_potion.effect.extreme_shrinking": "Туманное зелье уменьшения III", + "item.minecraft.tipped_arrow.effect.shrinking": "Стрела уменьшения", + "item.minecraft.tipped_arrow.effect.strong_shrinking": "Стрела уменьшения II", + "item.minecraft.tipped_arrow.effect.extreme_shrinking": "Стрела уменьшения III", + "item.minecraft.potion.effect.growing": "Зелье увеличения", + "item.minecraft.potion.effect.strong_growing": "Зелье увеличения II", + "item.minecraft.potion.effect.extreme_growing": "Зелье увеличения III", + "item.minecraft.splash_potion.effect.growing": "Взрывное зелье увеличения", + "item.minecraft.splash_potion.effect.strong_growing": "Взрывное зелье увеличения II", + "item.minecraft.splash_potion.effect.extreme_growing": "Взрывное зелье увеличения III", + "item.minecraft.lingering_potion.effect.growing": "Туманное зелье увеличения", + "item.minecraft.lingering_potion.effect.strong_growing": "Туманное зелье увеличения II", + "item.minecraft.lingering_potion.effect.extreme_growing": "Туманное зелье увеличения III", + "item.minecraft.tipped_arrow.effect.growing": "Стрела увеличения", + "item.minecraft.tipped_arrow.effect.strong_growing": "Стрела увеличения II", + "item.minecraft.tipped_arrow.effect.extreme_growing": "Стрела увеличения III", + "item.minecraft.potion.effect.dread": "Зелье ужаса", + "item.minecraft.potion.effect.long_dread": "Зелье ужаса", + "item.minecraft.splash_potion.effect.dread": "Взрывное зелье ужаса", + "item.minecraft.splash_potion.effect.long_dread": "Взрывное зелье ужаса", + "item.minecraft.lingering_potion.effect.dread": "Туманное зелье ужаса", + "item.minecraft.lingering_potion.effect.long_dread": "Туманное зелье ужаса", + "item.minecraft.tipped_arrow.effect.dread": "Стрела ужаса", + "item.minecraft.tipped_arrow.effect.long_dread": "Стрела ужаса", + "item.minecraft.potion.effect.stinky": "Зелье вонючести", + "item.minecraft.potion.effect.long_stinky": "Зелье вонючести", + "item.minecraft.splash_potion.effect.stinky": "Взрывное зелье вонючести", + "item.minecraft.splash_potion.effect.long_stinky": "Взрывное зелье вонючести", + "item.minecraft.lingering_potion.effect.stinky": "Туманное зелье вонючести", + "item.minecraft.lingering_potion.effect.long_stinky": "Туманное зелье вонючести", + "item.minecraft.tipped_arrow.effect.stinky": "Стрела вонючести", + "item.minecraft.tipped_arrow.effect.long_stinky": "Стрела вонючести", + "item.minecraft.potion.effect.haste": "Зелье спешки", + "item.minecraft.potion.effect.strong_haste": "Зелье спешки II", + "item.minecraft.splash_potion.effect.haste": "Взрывное зелье спешки", + "item.minecraft.splash_potion.effect.strong_haste": "Взрывное зелье спешки II", + "item.minecraft.lingering_potion.effect.haste": "Туманное зелье спешки", + "item.minecraft.lingering_potion.effect.strong_haste": "Туманное зелье спешки II", + "item.minecraft.tipped_arrow.effect.haste": "Стрела спешки", + "item.minecraft.tipped_arrow.effect.strong_haste": "Стрела спешки II", + "advancements.antarchy.cancel_out.title": "1 - 1 = ?", + "advancements.antarchy.cancel_out.description": "Имейте эффекты увеличения и уменьшения активными одновременно.", + "entity.antarchy.cheep": "Чип", + "item.antarchy.cheep": "Чип", + "item.antarchy.cheep_spawn_egg": "Яйцо призыва чипа", + "entity.antarchy.reverie": "Грёза", + "biome.antarchy.thoraxis": "Тораксис", + "biome.antarchy.nightmare_wastes": "Пустоши кошмара", + "biome.antarchy.umbral_hills": "Теневые холмы", + "biome.antarchy.lucid_pools": "Пруды люцидов", + "biome.antarchy.dream_dunes": "Дюны сновидений", + "biome.antarchy.cloud_sea": "Облачное море", + "block.antarchy.wild_corn": "Дикая кукуруза", + "trim_material.antarchy.blood_crystal": "Кровавый кристалл", + "trim_material.antarchy.nightmare_scale": "Чешуя кошмара", + "trim_material.antarchy.uranium": "Уран", + "trim_material.antarchy.titanium": "Титан", + "advancements.antarchy.duct_tape.title": "Я распилил эту лодку пополам!", + "advancements.antarchy.duct_tape.description": "и починил её с помощью силы клейкой ленты!", + "key.categories.antarchy": "Antarchy", + "key.antarchy.brutalfly_flap": "Элитры жестококрыла: Взмах крыльями", + "advancements.antarchy.shrink_ray_craft.title": "Дорогая, я уменьшил мобов", + "advancements.antarchy.shrink_ray_craft.description": "Создайте уменьшитель.", + "advancements.antarchy.growth_ray_craft.title": "Размер имеет значение", + "advancements.antarchy.growth_ray_craft.description": "Создайте увеличитель.", + "advancements.antarchy.squidzooka_craft.title": "Чернильный армагеддон", + "advancements.antarchy.squidzooka_craft.description": "Создайте сквидзуку.", + "advancements.antarchy.gravity_gun_craft.title": "Мастер притяжения", + "advancements.antarchy.gravity_gun_craft.description": "Создайте гравитационную пушку." + "subtitles.antarchy.stink_bug_fart": "Вонь жука пукает", + "subtitles.antarchy.stink_bug_idle": "Вонь жук бурчит", + "subtitles.antarchy.rolly_polly_idle": "Rolly Polly бурчит", + "death.attack.spit_bug_disrespect": "%1$s был унижен Spit Bug", + "death.attack.jumpy_bug_jump": "%1$s был атакован Jumpy Bug", + "death.attack.hercules_beetle_obliteration": "%1$s был стёрт Hercules Beetle" +} diff --git a/common/src/main/resources/assets/antarchy/models/block/amber_lichen.json b/common/src/main/resources/assets/antarchy/models/block/amber_lichen.json new file mode 100644 index 00000000..e6913b4a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/amber_lichen.json @@ -0,0 +1,17 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "antarchy:block/amber_moss/amber_lichen", + "glow_lichen": "antarchy:block/amber_moss/amber_lichen" + }, + "elements": [ + { + "from": [0, 0, 0.1], + "to": [16, 16, 0.1], + "faces": { + "north": { "uv": [16, 0, 0, 16], "texture": "#glow_lichen" }, + "south": { "uv": [0, 0, 16, 16], "texture": "#glow_lichen" } + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/models/block/amber_moss_block.json b/common/src/main/resources/assets/antarchy/models/block/amber_moss_block.json new file mode 100644 index 00000000..f3079b40 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/amber_moss_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/amber_moss/amber_moss_block" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet.json b/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet.json new file mode 100644 index 00000000..3058b1b5 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/carpet", + "textures": { + "wool": "antarchy:block/amber_moss/amber_moss_carpet" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet_side_small.json b/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet_side_small.json new file mode 100644 index 00000000..279f1af9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet_side_small.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/mossy_carpet_side", + "textures": { + "side": "antarchy:block/amber_moss/amber_moss_carpet" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet_side_tall.json new file mode 100644 index 00000000..f4bcd957 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/amber_moss_carpet_side_tall.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": true, + "textures": { + "particle": "#side", + "side": "antarchy:block/amber_moss/amber_moss_carpet" + }, + "elements": [ + { + "from": [0, 0, 0.1], + "to": [16, 16, 0.1], + "shade": true, + "faces": { + "north": {"uv": [16, 0, 0, 16], "texture": "#side"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#side"} + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/models/block/bile_vein.json b/common/src/main/resources/assets/antarchy/models/block/bile_vein.json new file mode 100644 index 00000000..1bbd5a7f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/bile_vein.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/bile/bile_vein" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone.json b/common/src/main/resources/assets/antarchy/models/block/broodstone.json new file mode 100644 index 00000000..b282bd92 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_slab.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_slab.json new file mode 100644 index 00000000..0ee192c5 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone_bricks", + "side": "antarchy:block/broodstone/broodstone_bricks", + "top": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_slab_top.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_slab_top.json new file mode 100644 index 00000000..067493ab --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone_bricks", + "side": "antarchy:block/broodstone/broodstone_bricks", + "top": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs.json new file mode 100644 index 00000000..d65ed867 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone_bricks", + "side": "antarchy:block/broodstone/broodstone_bricks", + "top": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs_inner.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs_inner.json new file mode 100644 index 00000000..c1a0fed2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone_bricks", + "side": "antarchy:block/broodstone/broodstone_bricks", + "top": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs_outer.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs_outer.json new file mode 100644 index 00000000..4f8c474a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone_bricks", + "side": "antarchy:block/broodstone/broodstone_bricks", + "top": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_inventory.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_inventory.json new file mode 100644 index 00000000..b01fc0f3 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_post.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_post.json new file mode 100644 index 00000000..5d94f43f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_side.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_side.json new file mode 100644 index 00000000..1ce43ea0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_side_tall.json new file mode 100644 index 00000000..d25a61d4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_bricks.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_bricks.json new file mode 100644 index 00000000..6b27f02e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/broodstone/broodstone_bricks" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_slab.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_slab.json new file mode 100644 index 00000000..e7546780 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone", + "side": "antarchy:block/broodstone/broodstone", + "top": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_slab_top.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_slab_top.json new file mode 100644 index 00000000..60ed97b7 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone", + "side": "antarchy:block/broodstone/broodstone", + "top": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs.json new file mode 100644 index 00000000..15e2f902 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone", + "side": "antarchy:block/broodstone/broodstone", + "top": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs_inner.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs_inner.json new file mode 100644 index 00000000..4edd0b2d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone", + "side": "antarchy:block/broodstone/broodstone", + "top": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs_outer.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs_outer.json new file mode 100644 index 00000000..679b7766 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/broodstone", + "side": "antarchy:block/broodstone/broodstone", + "top": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_titanium_ore.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_titanium_ore.json new file mode 100644 index 00000000..9962b7fb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_titanium_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/titanium/broodstone_titanium_ore" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_uranium_ore.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_uranium_ore.json new file mode 100644 index 00000000..9744b49b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_uranium_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/uranium/broodstone_uranium_ore" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_inventory.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_inventory.json new file mode 100644 index 00000000..76a17bdc --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_post.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_post.json new file mode 100644 index 00000000..1e0cabc7 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_side.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_side.json new file mode 100644 index 00000000..b103a052 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_side_tall.json new file mode 100644 index 00000000..2124ed4d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/broodstone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/broodstone/broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/cavaryn_portal_x.json b/common/src/main/resources/assets/antarchy/models/block/cavaryn_portal_x.json new file mode 100644 index 00000000..c3fbe98d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/cavaryn_portal_x.json @@ -0,0 +1,17 @@ +{ + "parent": "block/block", + "textures": { + "portal": "antarchy:block/cavaryn_portal", + "particle": "antarchy:block/cavaryn_portal" + }, + "elements": [ + { + "from": [0, 0, 7.5], + "to": [16, 16, 8.5], + "faces": { + "north": { "texture": "#portal" }, + "south": { "texture": "#portal" } + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/models/block/cavaryn_portal_z.json b/common/src/main/resources/assets/antarchy/models/block/cavaryn_portal_z.json new file mode 100644 index 00000000..8f25f81e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/cavaryn_portal_z.json @@ -0,0 +1,17 @@ +{ + "parent": "block/block", + "textures": { + "portal": "antarchy:block/cavaryn_portal", + "particle": "antarchy:block/cavaryn_portal" + }, + "elements": [ + { + "from": [7.5, 0, 0], + "to": [8.5, 16, 16], + "faces": { + "west": { "texture": "#portal" }, + "east": { "texture": "#portal" } + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiseled_broodstone.json b/common/src/main/resources/assets/antarchy/models/block/chiseled_broodstone.json new file mode 100644 index 00000000..8f9a0ff4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiseled_broodstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/broodstone/chiseled_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_block.json b/common/src/main/resources/assets/antarchy/models/block/chiten_block.json new file mode 100644 index 00000000..c3d21bb3 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "antarchy:block/chiten_block", + "side": "antarchy:block/chiten_block" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_base.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_base.json new file mode 100644 index 00000000..5bb4d70a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_down_base" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_frustum.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_frustum.json new file mode 100644 index 00000000..c94fcdb5 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_frustum.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_down_frustum" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_middle.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_middle.json new file mode 100644 index 00000000..8cd7d902 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_down_middle" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_tip.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_tip.json new file mode 100644 index 00000000..d8b89d9b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_tip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_down_tip" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_tip_merge.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_tip_merge.json new file mode 100644 index 00000000..3941f02d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_down_tip_merge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_down_tip_merge" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_base.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_base.json new file mode 100644 index 00000000..a896ccbb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_up_base" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_frustum.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_frustum.json new file mode 100644 index 00000000..e3e84f52 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_frustum.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_up_frustum" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_middle.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_middle.json new file mode 100644 index 00000000..ba4e46f2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_middle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_up_middle" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_tip.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_tip.json new file mode 100644 index 00000000..25dda590 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_tip.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_up_tip" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_tip_merge.json b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_tip_merge.json new file mode 100644 index 00000000..6349e79a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/chiten_spike_up_tip_merge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pointed_dripstone", + "textures": { + "cross": "antarchy:block/chiten_spike/chiten_spike_up_tip_merge" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_1.json b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_1.json new file mode 100644 index 00000000..f4187644 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_2.json b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_2.json new file mode 100644 index 00000000..d2f9f14d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_3.json b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_3.json new file mode 100644 index 00000000..ef956bbe --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_4.json b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_4.json new file mode 100644 index 00000000..e5ba6281 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/creeping_horror_egg_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg", + "particle": "antarchy:block/creeping_horror_egg/creeping_horror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/creepvine.json b/common/src/main/resources/assets/antarchy/models/block/creepvine.json new file mode 100644 index 00000000..3ee3bc66 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/creepvine.json @@ -0,0 +1,18 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "antarchy:block/creepvine", + "vine": "antarchy:block/creepvine" + }, + "elements": [ + { + "from": [0, 0, 0.8], + "to": [16, 16, 0.8], + "shade": false, + "faces": { + "north": { "uv": [16, 0, 0, 16], "texture": "#vine", "tintindex": 0 }, + "south": { "uv": [0, 0, 16, 16], "texture": "#vine", "tintindex": 0 } + } + } + ] +} diff --git a/common/src/main/resources/assets/antarchy/models/block/critter_cage_block.json b/common/src/main/resources/assets/antarchy/models/block/critter_cage_block.json index 5c18088f..55ca2e82 100644 --- a/common/src/main/resources/assets/antarchy/models/block/critter_cage_block.json +++ b/common/src/main/resources/assets/antarchy/models/block/critter_cage_block.json @@ -7,8 +7,8 @@ }, "elements": [ { - "from": [1, 1, 1], - "to": [15, 15, 15], + "from": [1, 0, 1], + "to": [15, 14, 15], "faces": { "down": { "texture": "#cage", "cullface": "down" }, "up": { "texture": "#cage", "cullface": "up" }, @@ -17,6 +17,18 @@ "west": { "texture": "#cage", "cullface": "west" }, "east": { "texture": "#cage", "cullface": "east" } } + }, + { + "from": [14.998, 0.002, 1.002], + "to": [1.002, 13.998, 14.998], + "faces": { + "down": { "uv": [14, 0, 0, 14], "texture": "#cage", "cullface": "down" }, + "up": { "uv": [14, 0, 0, 14], "texture": "#cage", "cullface": "up" }, + "north": { "uv": [14, 0, 0, 14], "texture": "#cage", "cullface": "south" }, + "south": { "uv": [14, 0, 0, 14], "texture": "#cage", "cullface": "north" }, + "west": { "uv": [14, 0, 0, 14], "texture": "#cage", "cullface": "east" }, + "east": { "uv": [14, 0, 0, 14], "texture": "#cage", "cullface": "west" } + } } ] } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_left.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_left.json index 03ca5a0f..db4c003e 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_left.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_left.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/bottom_left", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_middle.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_middle.json index 65ce4131..c5fc2b62 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_middle.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_middle.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/bottom_middle", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_right.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_right.json index bb9e59ed..10215c22 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_right.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/bottom_right.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/bottom_right", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/center.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/center.json index 49a1a6df..f9d9b040 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/center.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/center.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/center", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_left.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_left.json index b3015b82..3f8abda0 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_left.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_left.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/middle_left", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_right.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_right.json index 3f19cc20..c5057caa 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_right.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/middle_right.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/middle_right", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_left.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_left.json index d8bb7b07..9c9d53b8 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_left.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_left.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/top_left", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_middle.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_middle.json index b39f7bc2..8a53bf55 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_middle.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_middle.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/top_middle", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_right.json b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_right.json index 3190118a..61e88130 100644 --- a/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_right.json +++ b/common/src/main/resources/assets/antarchy/models/block/giant_lily_pad/top_right.json @@ -1,4 +1,4 @@ -{ +{ "parent": "minecraft:block/block", "textures": { "particle": "antarchy:block/giant_lilypad/tiles/three_by_three/top_right", @@ -7,16 +7,34 @@ }, "elements": [ { - "from": [0, 0, 0], - "to": [16, 0.25, 16], + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 0.25, + 16 + ], "shade": false, "faces": { "up": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#top" }, "down": { - "uv": [0, 0, 16, 16], + "uv": [ + 0, + 0, + 16, + 16 + ], "texture": "#bottom" } } diff --git a/common/src/main/resources/assets/antarchy/models/block/glowcap_mushroom.json b/common/src/main/resources/assets/antarchy/models/block/glowcap_mushroom.json new file mode 100644 index 00000000..3b29b312 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/glowcap_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/glowcap_mushroom" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/glowcap_mushroom_block.json b/common/src/main/resources/assets/antarchy/models/block/glowcap_mushroom_block.json new file mode 100644 index 00000000..d565833e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/glowcap_mushroom_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_single_face", + "textures": { + "texture": "antarchy:block/glowcap_mushroom_block" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/hanging_creeproots.json b/common/src/main/resources/assets/antarchy/models/block/hanging_creeproots.json new file mode 100644 index 00000000..d0012113 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/hanging_creeproots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/hanging_creeproots" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/hanging_creeproots_bottom.json b/common/src/main/resources/assets/antarchy/models/block/hanging_creeproots_bottom.json new file mode 100644 index 00000000..0215ee15 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/hanging_creeproots_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/hanging_creeproots_bottom" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/jumpy_bug_egg.json b/common/src/main/resources/assets/antarchy/models/block/jumpy_bug_egg.json new file mode 100644 index 00000000..9e31e7c0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/jumpy_bug_egg.json @@ -0,0 +1,85 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "antarchy:block/jumpy_bug_egg", + "particle": "antarchy:block/jumpy_bug_egg" + }, + "elements": [ + { + "from": [1, 0, 2], + "to": [15, 16, 14], + "faces": { + "north": {"uv": [0, 0, 3.5, 4], "texture": "#0"}, + "east": {"uv": [0, 4, 3, 8], "texture": "#0"}, + "south": {"uv": [0, 0, 3.5, 4], "texture": "#0"}, + "west": {"uv": [0, 4, 3, 8], "texture": "#0"}, + "up": {"uv": [9.5, 7, 6, 4], "texture": "#0", "cullface": "up"}, + "down": {"uv": [10.5, 0, 7, 3], "texture": "#0", "cullface": "down"} + } + }, + { + "from": [2, 0.1, 3], + "to": [14, 14.1, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0.1, 0]}, + "faces": { + "north": {"uv": [0, 8, 3, 11.5], "texture": "#0"}, + "east": {"uv": [3, 8, 5.5, 11.5], "texture": "#0"}, + "south": {"uv": [0, 8, 3, 11.5], "texture": "#0"}, + "west": {"uv": [3, 8, 5.5, 11.5], "texture": "#0"}, + "up": {"uv": [12.5, 5.5, 9.5, 3], "texture": "#0", "cullface": "up"}, + "down": {"uv": [13.5, 0, 10.5, 2.5], "texture": "#0", "cullface": "down"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, -55], + "translation": [0, 4, 0.5], + "scale": [0.85, 0.85, 0.85] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, -135, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, -135, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "jumpy_bug_egg", + "origin": [0, 0.1, 0], + "scope": 0, + "color": 0, + "children": [ + 0, + { + "name": "inside", + "origin": [0, 0.1, 0], + "scope": 0, + "color": 0, + "children": [1] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_1.json b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_1.json new file mode 100644 index 00000000..a63af561 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_2.json b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_2.json new file mode 100644 index 00000000..71eec9e4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_3.json b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_3.json new file mode 100644 index 00000000..7e5d23e4 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_4.json b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_4.json new file mode 100644 index 00000000..30d35294 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/lurking_terror_egg_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg", + "particle": "antarchy:block/lurking_terror_egg/lurking_terror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/molting_vines.json b/common/src/main/resources/assets/antarchy/models/block/molting_vines.json new file mode 100644 index 00000000..3e865d32 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/molting_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/molting_vines/molting_vines" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/molting_vines_bottom.json b/common/src/main/resources/assets/antarchy/models/block/molting_vines_bottom.json new file mode 100644 index 00000000..0f0f7090 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/molting_vines_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/molting_vines/molting_vines_bottom" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/molting_vines_broodfruit.json b/common/src/main/resources/assets/antarchy/models/block/molting_vines_broodfruit.json new file mode 100644 index 00000000..621ac434 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/molting_vines_broodfruit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/molting_vines/molting_vines_broodfruit" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/molting_vines_top.json b/common/src/main/resources/assets/antarchy/models/block/molting_vines_top.json new file mode 100644 index 00000000..ab6dbda9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/molting_vines_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "antarchy:block/molting_vines/molting_vines_top" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/myrmite.json b/common/src/main/resources/assets/antarchy/models/block/myrmite.json new file mode 100644 index 00000000..1c17e6da --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/myrmite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/myrmite" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone.json new file mode 100644 index 00000000..bc17c241 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_slab.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_slab.json new file mode 100644 index 00000000..b626cb78 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "antarchy:block/broodstone/polished_broodstone", + "side": "antarchy:block/broodstone/polished_broodstone", + "top": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_slab_top.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_slab_top.json new file mode 100644 index 00000000..ceb95562 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "antarchy:block/broodstone/polished_broodstone", + "side": "antarchy:block/broodstone/polished_broodstone", + "top": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs.json new file mode 100644 index 00000000..019f00b7 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "antarchy:block/broodstone/polished_broodstone", + "side": "antarchy:block/broodstone/polished_broodstone", + "top": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs_inner.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs_inner.json new file mode 100644 index 00000000..6f2c9a50 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/polished_broodstone", + "side": "antarchy:block/broodstone/polished_broodstone", + "top": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs_outer.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs_outer.json new file mode 100644 index 00000000..c18db6c3 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "antarchy:block/broodstone/polished_broodstone", + "side": "antarchy:block/broodstone/polished_broodstone", + "top": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_inventory.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_inventory.json new file mode 100644 index 00000000..17fdc24b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_post.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_post.json new file mode 100644 index 00000000..9a3eefa0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_side.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_side.json new file mode 100644 index 00000000..5fc981cc --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_side_tall.json b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_side_tall.json new file mode 100644 index 00000000..0a4206c3 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/polished_broodstone_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "antarchy:block/broodstone/polished_broodstone" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/potted_glowcap_mushroom.json b/common/src/main/resources/assets/antarchy/models/block/potted_glowcap_mushroom.json new file mode 100644 index 00000000..37a9978c --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/potted_glowcap_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "antarchy:block/glowcap_mushroom" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_1.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_1.json new file mode 100644 index 00000000..20b6a8ae --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_2.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_2.json new file mode 100644 index 00000000..cbfa51e2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_3.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_3.json new file mode 100644 index 00000000..03be473f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_4.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_4.json new file mode 100644 index 00000000..a3863d21 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_creeping_horror_egg_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_slightly_cracked", + "particle": "antarchy:block/creeping_horror_egg/creeping_horror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_1.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_1.json new file mode 100644 index 00000000..7c3dc843 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_2.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_2.json new file mode 100644 index 00000000..5e296fad --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_3.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_3.json new file mode 100644 index 00000000..7f1c780e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_4.json b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_4.json new file mode 100644 index 00000000..884cc982 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/slightly_cracked_lurking_terror_egg_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_slightly_cracked", + "particle": "antarchy:block/lurking_terror_egg/lurking_terror_egg_slightly_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/termite_nest.json b/common/src/main/resources/assets/antarchy/models/block/termite_nest.json new file mode 100644 index 00000000..3ae26d08 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/termite_nest.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "antarchy:block/termite_nest/termite_nest_side", + "down": "minecraft:block/rooted_dirt", + "up": "antarchy:block/termite_nest/termite_nest_top", + "north": "antarchy:block/termite_nest/termite_nest_side", + "south": "antarchy:block/termite_nest/termite_nest_side", + "west": "antarchy:block/termite_nest/termite_nest_side", + "east": "antarchy:block/termite_nest/termite_nest_side" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_1.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_1.json new file mode 100644 index 00000000..4ccfd5ca --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_2.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_2.json new file mode 100644 index 00000000..37334cc9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_3.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_3.json new file mode 100644 index 00000000..824df80f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_4.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_4.json new file mode 100644 index 00000000..71494d84 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_creeping_horror_egg_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "antarchy:block/creeping_horror_egg/creeping_horror_egg_very_cracked", + "particle": "antarchy:block/creeping_horror_egg/creeping_horror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_1.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_1.json new file mode 100644 index 00000000..248b4d18 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_turtle_egg", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_2.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_2.json new file mode 100644 index 00000000..0ac42d62 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_two_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_3.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_3.json new file mode 100644 index 00000000..40a9f01b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_three_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_4.json b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_4.json new file mode 100644 index 00000000..c4e1dca5 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/block/very_cracked_lurking_terror_egg_4.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/template_four_turtle_eggs", + "textures": { + "all": "antarchy:block/lurking_terror_egg/lurking_terror_egg_very_cracked", + "particle": "antarchy:block/lurking_terror_egg/lurking_terror_egg_very_cracked" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/amber_lichen.json b/common/src/main/resources/assets/antarchy/models/item/amber_lichen.json new file mode 100644 index 00000000..809509a9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/amber_lichen.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/amber_moss/amber_lichen" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/amber_moss_block.json b/common/src/main/resources/assets/antarchy/models/item/amber_moss_block.json new file mode 100644 index 00000000..7507fc94 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/amber_moss_block.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/amber_moss_block" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/amber_moss_carpet.json b/common/src/main/resources/assets/antarchy/models/item/amber_moss_carpet.json new file mode 100644 index 00000000..900da03b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/amber_moss_carpet.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/amber_moss_carpet" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/attitude_adjuster_gui.json b/common/src/main/resources/assets/antarchy/models/item/attitude_adjuster_gui.json new file mode 100644 index 00000000..7ff9524f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/attitude_adjuster_gui.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/attitude_adjuster/attitude_adjuster_item" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/attitude_adjuster_held.json b/common/src/main/resources/assets/antarchy/models/item/attitude_adjuster_held.json new file mode 100644 index 00000000..6ed12ce5 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/attitude_adjuster_held.json @@ -0,0 +1,312 @@ +{ + "format_version": "1.21.11", + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "0": "antarchy:item/attitude_adjuster/attitude_adjuster", + "particle": "antarchy:item/attitude_adjuster/attitude_adjuster" + }, + "elements": [ + { + "from": [7, -12, 7], + "to": [9, 16, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -16, 7]}, + "faces": { + "north": {"uv": [1.5, 6, 2, 13], "texture": "#0"}, + "east": {"uv": [1.5, 6, 2, 13], "texture": "#0"}, + "south": {"uv": [1.5, 6, 2, 13], "texture": "#0"}, + "west": {"uv": [1.5, 6, 2, 13], "texture": "#0"}, + "up": {"uv": [8, 5.5, 7.5, 5], "texture": "#0"}, + "down": {"uv": [8.5, 7, 8, 7.5], "texture": "#0"} + } + }, + { + "from": [6, 15, 5], + "to": [10, 25, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [3, 9, 4, 11.5], "texture": "#0"}, + "east": {"uv": [0, 6, 1.5, 8.5], "texture": "#0"}, + "south": {"uv": [4, 9, 3, 11.5], "texture": "#0"}, + "west": {"uv": [6, 0, 7.5, 2.5], "texture": "#0"}, + "up": {"uv": [6, 12.5, 5, 11], "texture": "#0"}, + "down": {"uv": [6, 11, 5, 12.5], "texture": "#0"} + } + }, + { + "from": [7, 25, 7], + "to": [9, 29, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [1, 8.5, 1.5, 9.5], "texture": "#0"}, + "east": {"uv": [1, 9.5, 1.5, 10.5], "texture": "#0"}, + "south": {"uv": [6, 9.5, 6.5, 10.5], "texture": "#0"}, + "west": {"uv": [1, 10.5, 1.5, 11.5], "texture": "#0"}, + "up": {"uv": [10, 7, 9.5, 6.5], "texture": "#0"}, + "down": {"uv": [10.5, 6.5, 10, 7], "texture": "#0"} + } + }, + { + "from": [6, -16, 6], + "to": [10, -12, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -20, 7]}, + "faces": { + "north": {"uv": [4, 11.5, 5, 12.5], "texture": "#0"}, + "east": {"uv": [4, 11.5, 5, 12.5], "texture": "#0"}, + "south": {"uv": [4, 11.5, 5, 12.5], "texture": "#0"}, + "west": {"uv": [4, 11.5, 5, 12.5], "texture": "#0"}, + "up": {"uv": [5, 14.25, 4, 13.25], "texture": "#0"}, + "down": {"uv": [5, 13.25, 4, 14.25], "texture": "#0"} + } + }, + { + "from": [15, 22.8, 6], + "to": [26, 25.8, 10], + "rotation": {"angle": 22.5, "axis": "z", "origin": [18, 23.3, 8]}, + "faces": { + "north": {"uv": [9, 1, 11.75, 1.75], "texture": "#0"}, + "east": {"uv": [12.25, 2.75, 13.25, 3.5], "texture": "#0"}, + "south": {"uv": [8.5, 9, 11.25, 9.75], "texture": "#0"}, + "west": {"uv": [12.25, 3.5, 13.25, 4.25], "texture": "#0"}, + "up": {"uv": [11.25, 5, 8.5, 4], "texture": "#0"}, + "down": {"uv": [11.25, 7, 8.5, 8], "texture": "#0"} + } + }, + { + "from": [15, 14.05, 6], + "to": [22, 17.05, 10], + "rotation": {"angle": -22.5, "axis": "z", "origin": [18, 14.55, 8]}, + "faces": { + "north": {"uv": [11.25, 4.25, 13, 5], "texture": "#0"}, + "east": {"uv": [12.25, 5, 13.25, 5.75], "texture": "#0"}, + "south": {"uv": [6, 11.5, 7.75, 12.25], "texture": "#0"}, + "west": {"uv": [12.25, 5.75, 13.25, 6.5], "texture": "#0"}, + "up": {"uv": [7.75, 11.5, 6, 10.5], "texture": "#0"}, + "down": {"uv": [12.25, 9.75, 10.5, 10.75], "texture": "#0"} + } + }, + { + "from": [20, 17.05, 7], + "to": [22, 19.05, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [18, 14.55, 8]}, + "faces": { + "north": {"uv": [10.5, 6.5, 11, 7], "texture": "#0"}, + "east": {"uv": [12.75, 1.5, 13.25, 2], "texture": "#0"}, + "south": {"uv": [12.75, 2, 13.25, 2.5], "texture": "#0"}, + "west": {"uv": [7.5, 12.75, 8, 13.25], "texture": "#0"}, + "up": {"uv": [8.5, 13.25, 8, 12.75], "texture": "#0"}, + "down": {"uv": [9, 12.75, 8.5, 13.25], "texture": "#0"} + } + }, + { + "from": [14, 14, 2], + "to": [18, 26, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 7]}, + "faces": { + "north": {"uv": [3, 6, 4, 9], "texture": "#0"}, + "east": {"uv": [0, 3, 3, 6], "texture": "#0"}, + "south": {"uv": [4, 6, 3, 9], "texture": "#0"}, + "west": {"uv": [0, 0, 3, 3], "texture": "#0"}, + "up": {"uv": [4, 6, 3, 9], "texture": "#0"}, + "down": {"uv": [3, 9, 4, 6], "texture": "#0"} + } + }, + { + "from": [10, 16, 5], + "to": [14, 24, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 7]}, + "faces": { + "north": {"uv": [5, 9, 6, 11], "texture": "#0"}, + "east": {"uv": [6.5, 5.5, 8, 7.5], "texture": "#0"}, + "south": {"uv": [5, 9, 6, 11], "texture": "#0"}, + "west": {"uv": [7.5, 0, 9, 2], "texture": "#0"}, + "up": {"uv": [1, 13, 0, 11.5], "texture": "#0"}, + "down": {"uv": [1, 11.5, 0, 13], "texture": "#0"} + } + }, + { + "from": [20, 20.8, 7], + "to": [22, 22.8, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [18, 23.3, 8]}, + "faces": { + "north": {"uv": [9, 12.75, 9.5, 13.25], "texture": "#0"}, + "east": {"uv": [9.5, 12.75, 10, 13.25], "texture": "#0"}, + "south": {"uv": [10, 12.75, 10.5, 13.25], "texture": "#0"}, + "west": {"uv": [10.5, 12.75, 11, 13.25], "texture": "#0"}, + "up": {"uv": [11.5, 13.25, 11, 12.75], "texture": "#0"}, + "down": {"uv": [12, 12.75, 11.5, 13.25], "texture": "#0"} + } + }, + { + "from": [24, 19.8, 6], + "to": [26, 22.8, 10], + "rotation": {"angle": 22.5, "axis": "z", "origin": [18, 23.3, 8]}, + "faces": { + "north": {"uv": [4, 12.5, 4.5, 13.25], "texture": "#0"}, + "east": {"uv": [6, 12.25, 7, 13], "texture": "#0"}, + "south": {"uv": [4.5, 12.5, 5, 13.25], "texture": "#0"}, + "west": {"uv": [12.25, 6.5, 13.25, 7.25], "texture": "#0"}, + "up": {"uv": [8.25, 11.5, 7.75, 10.5], "texture": "#0"}, + "down": {"uv": [1.5, 11.5, 1, 12.5], "texture": "#0"} + } + }, + { + "from": [-10, 22.8, 6], + "to": [1, 25.8, 10], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-2, 23.3, 8]}, + "faces": { + "north": {"uv": [9.5, 5, 12.25, 5.75], "texture": "#0"}, + "east": {"uv": [12.25, 7.25, 13.25, 8], "texture": "#0"}, + "south": {"uv": [9.5, 5.75, 12.25, 6.5], "texture": "#0"}, + "west": {"uv": [12.25, 8, 13.25, 8.75], "texture": "#0"}, + "up": {"uv": [11.25, 9, 8.5, 8], "texture": "#0"}, + "down": {"uv": [11.75, 0, 9, 1], "texture": "#0"} + } + }, + { + "from": [-6, 14.05, 6], + "to": [1, 17.05, 10], + "rotation": {"angle": 22.5, "axis": "z", "origin": [-2, 14.55, 8]}, + "faces": { + "north": {"uv": [11.75, 0, 13.5, 0.75], "texture": "#0"}, + "east": {"uv": [12.25, 8.75, 13.25, 9.5], "texture": "#0"}, + "south": {"uv": [11.75, 0.75, 13.5, 1.5], "texture": "#0"}, + "west": {"uv": [12.25, 9.5, 13.25, 10.25], "texture": "#0"}, + "up": {"uv": [12.25, 11.75, 10.5, 10.75], "texture": "#0"}, + "down": {"uv": [12.75, 1.75, 11, 2.75], "texture": "#0"} + } + }, + { + "from": [-6, 17.05, 7], + "to": [-4, 19.05, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [-2, 14.55, 8]}, + "faces": { + "north": {"uv": [12.75, 11.75, 13.25, 12.25], "texture": "#0"}, + "east": {"uv": [12, 12.75, 12.5, 13.25], "texture": "#0"}, + "south": {"uv": [12.75, 12.25, 13.25, 12.75], "texture": "#0"}, + "west": {"uv": [12.5, 12.75, 13, 13.25], "texture": "#0"}, + "up": {"uv": [0.5, 13.5, 0, 13], "texture": "#0"}, + "down": {"uv": [1, 13, 0.5, 13.5], "texture": "#0"} + } + }, + { + "from": [-2, 14, 2], + "to": [2, 26, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 7]}, + "faces": { + "north": {"uv": [4, 6, 3, 9], "texture": "#0"}, + "east": {"uv": [0, 0, 3, 3], "texture": "#0"}, + "south": {"uv": [4, 6, 3, 9], "texture": "#0"}, + "west": {"uv": [0, 3, 3, 6], "texture": "#0"}, + "up": {"uv": [4, 6, 3, 9], "texture": "#0"}, + "down": {"uv": [3, 9, 4, 6], "texture": "#0"} + } + }, + { + "from": [2, 16, 5], + "to": [6, 24, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 0, 7]}, + "faces": { + "north": {"uv": [6, 9, 5, 11], "texture": "#0"}, + "east": {"uv": [8, 5, 9.5, 7], "texture": "#0"}, + "south": {"uv": [5, 9, 6, 11], "texture": "#0"}, + "west": {"uv": [8.5, 2, 10, 4], "texture": "#0"}, + "up": {"uv": [1, 13, 0, 11.5], "texture": "#0"}, + "down": {"uv": [1, 11.5, 0, 13], "texture": "#0"} + } + }, + { + "from": [-6, 20.8, 7], + "to": [-4, 22.8, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-2, 23.3, 8]}, + "faces": { + "north": {"uv": [1.5, 13, 2, 13.5], "texture": "#0"}, + "east": {"uv": [2, 13, 2.5, 13.5], "texture": "#0"}, + "south": {"uv": [2.5, 13, 3, 13.5], "texture": "#0"}, + "west": {"uv": [3, 13, 3.5, 13.5], "texture": "#0"}, + "up": {"uv": [4, 13.5, 3.5, 13], "texture": "#0"}, + "down": {"uv": [13.5, 4.25, 13, 4.75], "texture": "#0"} + } + }, + { + "from": [-10, 19.8, 6], + "to": [-8, 22.8, 10], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-2, 23.3, 8]}, + "faces": { + "north": {"uv": [5, 12.5, 5.5, 13.25], "texture": "#0"}, + "east": {"uv": [12.25, 10.25, 13.25, 11], "texture": "#0"}, + "south": {"uv": [5.5, 12.5, 6, 13.25], "texture": "#0"}, + "west": {"uv": [12.25, 11, 13.25, 11.75], "texture": "#0"}, + "up": {"uv": [7.5, 13.25, 7, 12.25], "texture": "#0"}, + "down": {"uv": [1.5, 12.5, 1, 13.5], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 90, 0], + "translation": [0, 8, 1], + "scale": [0.8, 0.8, 0.8] + }, + "thirdperson_lefthand": { + "rotation": [0, 90, 0], + "translation": [0, 8, 1], + "scale": [0.8, 0.8, 0.8] + }, + "firstperson_righthand": { + "rotation": [0, -90, 10], + "translation": [1.63, 3.2, 1.13], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "rotation": [0, -90, 10], + "translation": [1.63, 3.2, 1.13], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [0, 0, -45], + "translation": [-1.25, -1.25, 0], + "scale": [0.3, 0.3, 0.3] + }, + "fixed": { + "rotation": [0, 0, 45], + "translation": [1.25, -1.25, 0], + "scale": [0.35, 0.35, 0.35] + }, + "on_shelf": { + "scale": [0.7, 0.7, 0.7] + } + }, + "groups": [ + { + "name": "attitude_adjuster", + "origin": [18, 23.5, 8], + "scope": 0, + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + { + "name": "group", + "origin": [18, 23.5, 8], + "scope": 0, + "color": 0, + "children": [4, 5, 6, 7, 8, 9, 10] + }, + { + "name": "group", + "origin": [-2, 23.5, 8], + "scope": 0, + "color": 0, + "children": [11, 12, 13, 14, 15, 16, 17] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/antarchy/models/item/bile_vein.json b/common/src/main/resources/assets/antarchy/models/item/bile_vein.json new file mode 100644 index 00000000..1a1067eb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/bile_vein.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/bile_vein" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodfruit.json b/common/src/main/resources/assets/antarchy/models/item/broodfruit.json new file mode 100644 index 00000000..d9340b3d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodfruit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/broodfruit" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone.json b/common/src/main/resources/assets/antarchy/models/item/broodstone.json new file mode 100644 index 00000000..c212825a --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_slab.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_slab.json new file mode 100644 index 00000000..ad43db08 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_brick_slab" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_stairs.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_stairs.json new file mode 100644 index 00000000..59053652 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_brick_stairs" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_wall.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_wall.json new file mode 100644 index 00000000..65ea684e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_brick_wall_inventory" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_bricks.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_bricks.json new file mode 100644 index 00000000..58155c3e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_bricks" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_slab.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_slab.json new file mode 100644 index 00000000..9d7098fd --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_slab" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_stairs.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_stairs.json new file mode 100644 index 00000000..541ee0f2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_stairs" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_titanium_ore.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_titanium_ore.json new file mode 100644 index 00000000..a790703b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_titanium_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_titanium_ore" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_uranium_ore.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_uranium_ore.json new file mode 100644 index 00000000..2fbadcc7 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_uranium_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_uranium_ore" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/broodstone_wall.json b/common/src/main/resources/assets/antarchy/models/item/broodstone_wall.json new file mode 100644 index 00000000..8af1645e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/broodstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/broodstone_wall_inventory" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/chiseled_broodstone.json b/common/src/main/resources/assets/antarchy/models/item/chiseled_broodstone.json new file mode 100644 index 00000000..38aa107e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/chiseled_broodstone.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/chiseled_broodstone" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/chiten.json b/common/src/main/resources/assets/antarchy/models/item/chiten.json new file mode 100644 index 00000000..20b2e019 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/chiten.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/chiten" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/chiten_block.json b/common/src/main/resources/assets/antarchy/models/item/chiten_block.json new file mode 100644 index 00000000..47e06517 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/chiten_block.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/chiten_block" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/chiten_spike.json b/common/src/main/resources/assets/antarchy/models/item/chiten_spike.json new file mode 100644 index 00000000..0a70c0e9 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/chiten_spike.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/chiten_spike" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/cooked_bug_meat.json b/common/src/main/resources/assets/antarchy/models/item/cooked_bug_meat.json new file mode 100644 index 00000000..7e018698 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/cooked_bug_meat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/cooked_bug_meat" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/creeping_horror_egg.json b/common/src/main/resources/assets/antarchy/models/item/creeping_horror_egg.json new file mode 100644 index 00000000..09dddc04 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/creeping_horror_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/creeping_horror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/creepvine.json b/common/src/main/resources/assets/antarchy/models/item/creepvine.json new file mode 100644 index 00000000..bea911f8 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/creepvine.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/creepvine" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/glowcap_mushroom.json b/common/src/main/resources/assets/antarchy/models/item/glowcap_mushroom.json new file mode 100644 index 00000000..f35a640f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/glowcap_mushroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/glowcap_mushroom" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/glowcap_mushroom_block.json b/common/src/main/resources/assets/antarchy/models/item/glowcap_mushroom_block.json new file mode 100644 index 00000000..9067ee9e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/glowcap_mushroom_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "antarchy:block/glowcap_mushroom_block" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/hanging_creeproots.json b/common/src/main/resources/assets/antarchy/models/item/hanging_creeproots.json new file mode 100644 index 00000000..292043a5 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/hanging_creeproots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/hanging_creeproots_bottom" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/hercules_horn.json b/common/src/main/resources/assets/antarchy/models/item/hercules_horn.json new file mode 100644 index 00000000..b275e4f0 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/hercules_horn.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/hercules_horn" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/jumpy_bug_egg.json b/common/src/main/resources/assets/antarchy/models/item/jumpy_bug_egg.json new file mode 100644 index 00000000..9d3bd18e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/jumpy_bug_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/jumpy_bug_egg_item" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/lurking_terror_egg.json b/common/src/main/resources/assets/antarchy/models/item/lurking_terror_egg.json new file mode 100644 index 00000000..42cebd01 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/lurking_terror_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/lurking_terror_egg" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/molting_vines.json b/common/src/main/resources/assets/antarchy/models/item/molting_vines.json new file mode 100644 index 00000000..f447ccbd --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/molting_vines.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:block/molting_vines/molting_vines" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/myrmite.json b/common/src/main/resources/assets/antarchy/models/item/myrmite.json new file mode 100644 index 00000000..9da582d2 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/myrmite.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/myrmite" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_broodstone.json b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone.json new file mode 100644 index 00000000..c64fc88f --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_broodstone" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_slab.json b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_slab.json new file mode 100644 index 00000000..9944ca9e --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_broodstone_slab" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_stairs.json b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_stairs.json new file mode 100644 index 00000000..151eb15b --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_broodstone_stairs" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_wall.json b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_wall.json new file mode 100644 index 00000000..bc85f80d --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/polished_broodstone_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/polished_broodstone_wall_inventory" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/raw_bug_meat.json b/common/src/main/resources/assets/antarchy/models/item/raw_bug_meat.json new file mode 100644 index 00000000..12e4b164 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/raw_bug_meat.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/raw_bug_meat" + } +} diff --git a/common/src/main/resources/assets/antarchy/models/item/spit_bug_spawn_egg.json b/common/src/main/resources/assets/antarchy/models/item/spit_bug_spawn_egg.json new file mode 100644 index 00000000..ddd15597 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/spit_bug_spawn_egg.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_spawn_egg" +} diff --git a/common/src/main/resources/assets/antarchy/models/item/termite_nest.json b/common/src/main/resources/assets/antarchy/models/item/termite_nest.json new file mode 100644 index 00000000..0f2c65eb --- /dev/null +++ b/common/src/main/resources/assets/antarchy/models/item/termite_nest.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:block/termite_nest" +} diff --git a/common/src/main/resources/assets/antarchy/sounds.json b/common/src/main/resources/assets/antarchy/sounds.json index ce08526a..381cf565 100644 --- a/common/src/main/resources/assets/antarchy/sounds.json +++ b/common/src/main/resources/assets/antarchy/sounds.json @@ -603,6 +603,63 @@ } ] }, + "stink_bug_fart": { + "subtitle": "subtitles.antarchy.stink_bug_fart", + "sounds": [ + { + "name": "antarchy:mob/stink_bug/fart1" + }, + { + "name": "antarchy:mob/stink_bug/fart2" + }, + { + "name": "antarchy:mob/stink_bug/fart3" + }, + { + "name": "antarchy:mob/stink_bug/fart4" + } + ] + }, + "stink_bug_idle": { + "subtitle": "subtitles.antarchy.stink_bug_idle", + "sounds": [ + { + "name": "antarchy:mob/stink_bug/idle1" + }, + { + "name": "antarchy:mob/stink_bug/idle2" + }, + { + "name": "antarchy:mob/stink_bug/idle3" + }, + { + "name": "antarchy:mob/stink_bug/idle4" + }, + { + "name": "antarchy:mob/stink_bug/idle5" + } + ] + }, + "rolly_polly_idle": { + "subtitle": "subtitles.antarchy.rolly_polly_idle", + "sounds": [ + { + "name": "antarchy:mob/rolly_polly/idle1" + }, + { + "name": "antarchy:mob/rolly_polly/idle2" + }, + { + "name": "antarchy:mob/rolly_polly/idle3" + }, + { + "name": "antarchy:mob/rolly_polly/idle4" + }, + { + "name": "antarchy:mob/rolly_polly/idle5" + } + ] + }, "thoraxis_nightmare_wastes_ambient": { "subtitle": "subtitles.antarchy.thoraxis_nightmare_wastes_ambient", "sounds": [ @@ -1878,5 +1935,169 @@ "name": "antarchy:mob/lurking_terror/lurking_terror_snarl2" } ] + }, + "hercules_beetle_idle": { + "subtitle": "subtitles.antarchy.hercules_beetle_idle", + "sounds": [ + { + "name": "antarchy:mob/hercules_beetle/idle1" + }, + { + "name": "antarchy:mob/hercules_beetle/idle2" + }, + { + "name": "antarchy:mob/hercules_beetle/idle3" + }, + { + "name": "antarchy:mob/hercules_beetle/idle4" + } + ] + }, + "hercules_beetle_hurt": { + "subtitle": "subtitles.antarchy.hercules_beetle_hurt", + "sounds": [ + { + "name": "antarchy:mob/hercules_beetle/hurt1" + } + ] + }, + "hercules_beetle_attack": { + "subtitle": "subtitles.antarchy.hercules_beetle_attack", + "sounds": [ + { + "name": "antarchy:mob/hercules_beetle/attack1" + }, + { + "name": "antarchy:mob/hercules_beetle/attack2" + }, + { + "name": "antarchy:mob/hercules_beetle/attack3" + }, + { + "name": "antarchy:mob/hercules_beetle/attack4" + } + ] + }, + "hercules_beetle_cry": { + "subtitle": "subtitles.antarchy.hercules_beetle_cry", + "sounds": [ + { + "name": "antarchy:mob/hercules_beetle/cry1" + } + ] + }, + "hercules_beetle_charge_start": { + "subtitle": "subtitles.antarchy.hercules_beetle_charge_start", + "sounds": [ + { + "name": "antarchy:mob/hercules_beetle/charge_start" + } + ] + }, + "hercules_beetle_knocked_down": { + "subtitle": "subtitles.antarchy.hercules_beetle_knocked_down", + "sounds": [ + { + "name": "antarchy:mob/hercules_beetle/knocked_down1" + } + ] + }, + "jumpy_bug_idle": { + "subtitle": "subtitles.antarchy.jumpy_bug_idle", + "sounds": [ + { + "name": "antarchy:mob/jumpy_bug/idle1" + }, + { + "name": "antarchy:mob/jumpy_bug/idle2" + }, + { + "name": "antarchy:mob/jumpy_bug/idle3" + }, + { + "name": "antarchy:mob/jumpy_bug/idle4" + } + ] + }, + "spit_bug_idle": { + "subtitle": "subtitles.antarchy.spit_bug_idle", + "sounds": [ + { + "name": "antarchy:mob/spit_bug/idle1" + }, + { + "name": "antarchy:mob/spit_bug/idle2" + } + ] + }, + "jumpy_bug_hurt": { + "subtitle": "subtitles.antarchy.jumpy_bug_hurt", + "sounds": [ + { + "name": "antarchy:mob/jumpy_bug/hurt1" + }, + { + "name": "antarchy:mob/jumpy_bug/hurt2" + } + ] + }, + "jumpy_bug_jump": { + "subtitle": "subtitles.antarchy.jumpy_bug_jump", + "sounds": [ + { + "name": "antarchy:mob/jumpy_bug/jump1" + }, + { + "name": "antarchy:mob/jumpy_bug/jump2" + }, + { + "name": "antarchy:mob/jumpy_bug/jump3" + } + ] + }, + "spit_bug_hurt": { + "subtitle": "subtitles.antarchy.spit_bug_hurt", + "sounds": [ + { + "name": "antarchy:mob/spit_bug/hurt1" + }, + { + "name": "antarchy:mob/spit_bug/hurt2" + } + ] + }, + "spit_bug_spit": { + "subtitle": "subtitles.antarchy.spit_bug_spit", + "sounds": [ + { + "name": "antarchy:mob/spit_bug/spit1" + }, + { + "name": "antarchy:mob/spit_bug/spit2" + }, + { + "name": "antarchy:mob/spit_bug/spit3" + }, + { + "name": "antarchy:mob/spit_bug/spit4" + } + ] + }, + "brutalfly_spit": { + "subtitle": "subtitles.antarchy.brutalfly_spit", + "sounds": [ + { + "name": "antarchy:mob/brutalfly/spit1" + }, + { + "name": "antarchy:mob/brutalfly/spit2" + }, + { + "name": "antarchy:mob/brutalfly/spit3" + }, + { + "name": "antarchy:mob/brutalfly/spit4" + } + ] } } diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit1.ogg new file mode 100644 index 00000000..b5733a2e Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit2.ogg new file mode 100644 index 00000000..da80ea23 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit3.ogg new file mode 100644 index 00000000..ca5e4de6 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit4.ogg new file mode 100644 index 00000000..063c6f91 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/brutalfly/spit4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite1.ogg new file mode 100644 index 00000000..fd89b048 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite2.ogg new file mode 100644 index 00000000..1993fb69 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite3.ogg new file mode 100644 index 00000000..1f44cc93 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite4.ogg new file mode 100644 index 00000000..3fa77eaa Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_bite4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_growl1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_growl1.ogg new file mode 100644 index 00000000..746f4f3a Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_growl1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_growl2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_growl2.ogg new file mode 100644 index 00000000..a60677ea Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_growl2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_hurt1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_hurt1.ogg new file mode 100644 index 00000000..1ad6f0ec Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_hurt1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_hurt2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_hurt2.ogg new file mode 100644 index 00000000..e1f10239 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/creeping_horror/creeping_horror_hurt2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack1.ogg new file mode 100644 index 00000000..7df8dcd5 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack2.ogg new file mode 100644 index 00000000..2f7ba9eb Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack3.ogg new file mode 100644 index 00000000..799889bb Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack4.ogg new file mode 100644 index 00000000..f84db417 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/attack4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/charge_start.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/charge_start.ogg new file mode 100644 index 00000000..7a46a7de Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/charge_start.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/cry1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/cry1.ogg new file mode 100644 index 00000000..a6d1e8be Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/cry1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/hurt1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/hurt1.ogg new file mode 100644 index 00000000..4075732d Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/hurt1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle1.ogg new file mode 100644 index 00000000..f40e7680 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle2.ogg new file mode 100644 index 00000000..b9ae3bf7 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle3.ogg new file mode 100644 index 00000000..bd24a5a3 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle4.ogg new file mode 100644 index 00000000..ad8a97fd Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/idle4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/knocked_down1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/knocked_down1.ogg new file mode 100644 index 00000000..130c2101 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/hercules_beetle/knocked_down1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/hurt1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/hurt1.ogg new file mode 100644 index 00000000..1ad6f0ec Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/hurt1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/hurt2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/hurt2.ogg new file mode 100644 index 00000000..e1f10239 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/hurt2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle1.ogg new file mode 100644 index 00000000..4bfd3c19 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle2.ogg new file mode 100644 index 00000000..6585e6a3 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle3.ogg new file mode 100644 index 00000000..1e110266 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle4.ogg new file mode 100644 index 00000000..95df5d7f Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/idle4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump1.ogg new file mode 100644 index 00000000..168605ab Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump2.ogg new file mode 100644 index 00000000..5e130d7e Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump3.ogg new file mode 100644 index 00000000..12d986e3 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/jumpy_bug/jump3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_bite1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_bite1.ogg new file mode 100644 index 00000000..a72b530e Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_bite1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_fly_loop.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_fly_loop.ogg new file mode 100644 index 00000000..7204c176 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_fly_loop.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_hurt1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_hurt1.ogg new file mode 100644 index 00000000..1ad6f0ec Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_hurt1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_hurt2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_hurt2.ogg new file mode 100644 index 00000000..e1f10239 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_hurt2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_snarl1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_snarl1.ogg new file mode 100644 index 00000000..669bbdc8 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_snarl1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_snarl2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_snarl2.ogg new file mode 100644 index 00000000..1305bb04 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/lurking_terror/lurking_terror_snarl2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle1.ogg new file mode 100644 index 00000000..03b86aec Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle2.ogg new file mode 100644 index 00000000..aadd96cb Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle3.ogg new file mode 100644 index 00000000..a68531ac Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle4.ogg new file mode 100644 index 00000000..c3457122 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle5.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle5.ogg new file mode 100644 index 00000000..12c6da14 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/rolly_polly/idle5.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/hurt1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/hurt1.ogg new file mode 100644 index 00000000..1ad6f0ec Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/hurt1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/hurt2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/hurt2.ogg new file mode 100644 index 00000000..e1f10239 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/hurt2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/idle1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/idle1.ogg new file mode 100644 index 00000000..7da30656 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/idle1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/idle2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/idle2.ogg new file mode 100644 index 00000000..ac519a59 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/idle2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit1.ogg new file mode 100644 index 00000000..b5733a2e Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit2.ogg new file mode 100644 index 00000000..da80ea23 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit3.ogg new file mode 100644 index 00000000..ca5e4de6 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit4.ogg new file mode 100644 index 00000000..063c6f91 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/spit_bug/spit4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart1.ogg new file mode 100644 index 00000000..7a8d3c2b Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart2.ogg new file mode 100644 index 00000000..d2642924 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart3.ogg new file mode 100644 index 00000000..fa5abd6b Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart4.ogg new file mode 100644 index 00000000..b0e8f579 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/fart4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle1.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle1.ogg new file mode 100644 index 00000000..fa5cf155 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle1.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle2.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle2.ogg new file mode 100644 index 00000000..0fba63d8 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle2.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle3.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle3.ogg new file mode 100644 index 00000000..25480696 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle3.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle4.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle4.ogg new file mode 100644 index 00000000..21026cb8 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle4.ogg differ diff --git a/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle5.ogg b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle5.ogg new file mode 100644 index 00000000..d89ac002 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/sounds/mob/stink_bug/idle5.ogg differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_lichen.png b/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_lichen.png new file mode 100644 index 00000000..cb7a9d84 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_lichen.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_moss_block.png b/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_moss_block.png new file mode 100644 index 00000000..4ec05b6b Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_moss_block.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_moss_carpet.png b/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_moss_carpet.png new file mode 100644 index 00000000..4ec05b6b Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/amber_moss/amber_moss_carpet.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein.png b/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein.png index fbade520..d085b074 100644 Binary files a/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein.png and b/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein_static.png b/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein_static.png new file mode 100644 index 00000000..02397070 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/bile/bile_vein_static.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_block.png b/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_block.png index 0501cf58..cf5c5e99 100644 Binary files a/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_block.png and b/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_block.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_carpet.png b/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_carpet.png index 0501cf58..cf5c5e99 100644 Binary files a/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_carpet.png and b/common/src/main/resources/assets/antarchy/textures/block/blush_moss/blush_moss_carpet.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/broodstone/broodstone.png b/common/src/main/resources/assets/antarchy/textures/block/broodstone/broodstone.png new file mode 100644 index 00000000..4ecd6bbe Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/broodstone/broodstone.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/broodstone/broodstone_bricks.png b/common/src/main/resources/assets/antarchy/textures/block/broodstone/broodstone_bricks.png new file mode 100644 index 00000000..0664322f Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/broodstone/broodstone_bricks.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/broodstone/chiseled_broodstone.png b/common/src/main/resources/assets/antarchy/textures/block/broodstone/chiseled_broodstone.png new file mode 100644 index 00000000..29bac91c Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/broodstone/chiseled_broodstone.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/broodstone/polished_broodstone.png b/common/src/main/resources/assets/antarchy/textures/block/broodstone/polished_broodstone.png new file mode 100644 index 00000000..1087e4a4 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/broodstone/polished_broodstone.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/cavaryn_portal.png b/common/src/main/resources/assets/antarchy/textures/block/cavaryn_portal.png new file mode 100644 index 00000000..55cd182a Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/cavaryn_portal.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_base.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_base.png new file mode 100644 index 00000000..49c5d6a1 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_base.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_frustum.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_frustum.png new file mode 100644 index 00000000..1660e8e0 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_frustum.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_middle.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_middle.png new file mode 100644 index 00000000..cecd80c1 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_middle.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_tip.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_tip.png new file mode 100644 index 00000000..324c5c8a Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_tip.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_tip_merge.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_tip_merge.png new file mode 100644 index 00000000..9c78714d Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_down_tip_merge.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_base.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_base.png new file mode 100644 index 00000000..f9eab88e Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_base.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_frustum.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_frustum.png new file mode 100644 index 00000000..a4894a9d Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_frustum.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_middle.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_middle.png new file mode 100644 index 00000000..37c8e4d2 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_middle.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_tip.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_tip.png new file mode 100644 index 00000000..9b66fa38 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_tip.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_tip_merge.png b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_tip_merge.png new file mode 100644 index 00000000..0d9972f2 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/chiten_spike/chiten_spike_up_tip_merge.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg.png b/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg.png new file mode 100644 index 00000000..905c49c9 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg_slightly_cracked.png b/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg_slightly_cracked.png new file mode 100644 index 00000000..0a4765be Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg_slightly_cracked.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg_very_cracked.png b/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg_very_cracked.png new file mode 100644 index 00000000..9040f255 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/creeping_horror_egg/creeping_horror_egg_very_cracked.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/creepvine.png b/common/src/main/resources/assets/antarchy/textures/block/creepvine.png new file mode 100644 index 00000000..b578b4fa Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/creepvine.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/glowcap_mushroom.png b/common/src/main/resources/assets/antarchy/textures/block/glowcap_mushroom.png new file mode 100644 index 00000000..4bd7cd82 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/glowcap_mushroom.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/glowcap_mushroom_block.png b/common/src/main/resources/assets/antarchy/textures/block/glowcap_mushroom_block.png new file mode 100644 index 00000000..d482265a Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/glowcap_mushroom_block.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/hanging_creeproots.png b/common/src/main/resources/assets/antarchy/textures/block/hanging_creeproots.png new file mode 100644 index 00000000..06e66294 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/hanging_creeproots.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/hanging_creeproots_bottom.png b/common/src/main/resources/assets/antarchy/textures/block/hanging_creeproots_bottom.png new file mode 100644 index 00000000..c3eb46d1 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/hanging_creeproots_bottom.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/jumpy_bug_egg.png b/common/src/main/resources/assets/antarchy/textures/block/jumpy_bug_egg.png new file mode 100644 index 00000000..18f0f294 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/jumpy_bug_egg.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/jumpy_bug_egg.png.mcmeta b/common/src/main/resources/assets/antarchy/textures/block/jumpy_bug_egg.png.mcmeta new file mode 100644 index 00000000..4a8bdc48 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/textures/block/jumpy_bug_egg.png.mcmeta @@ -0,0 +1,12 @@ +{ + "animation": { + "frametime": 140, + "interpolate": true, + "frames": [ + 0, + 1, + 0, + 2 + ] + } +} diff --git a/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg.png b/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg.png new file mode 100644 index 00000000..10089a41 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg_slightly_cracked.png b/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg_slightly_cracked.png new file mode 100644 index 00000000..ac965ebb Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg_slightly_cracked.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg_very_cracked.png b/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg_very_cracked.png new file mode 100644 index 00000000..10cf9dd9 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/lurking_terror_egg/lurking_terror_egg_very_cracked.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines.png b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines.png new file mode 100644 index 00000000..a3019358 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_bottom.png b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_bottom.png new file mode 100644 index 00000000..a667ff08 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_bottom.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_broodfruit.png b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_broodfruit.png new file mode 100644 index 00000000..a4b35c09 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_broodfruit.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_top.png b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_top.png new file mode 100644 index 00000000..5fa3ca49 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/molting_vines/molting_vines_top.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/myrmite.png b/common/src/main/resources/assets/antarchy/textures/block/myrmite.png new file mode 100644 index 00000000..1a74738a Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/myrmite.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_side.png b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_side.png new file mode 100644 index 00000000..42088094 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_side.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_side.png.mcmeta b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_side.png.mcmeta new file mode 100644 index 00000000..1fd02729 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_side.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 9 + } +} diff --git a/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_top.png b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_top.png new file mode 100644 index 00000000..0ec0664b Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_top.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_top.png.mcmeta b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_top.png.mcmeta new file mode 100644 index 00000000..1fd02729 --- /dev/null +++ b/common/src/main/resources/assets/antarchy/textures/block/termite_nest/termite_nest_top.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 9 + } +} diff --git a/common/src/main/resources/assets/antarchy/textures/block/titanium/broodstone_titanium_ore.png b/common/src/main/resources/assets/antarchy/textures/block/titanium/broodstone_titanium_ore.png new file mode 100644 index 00000000..6cffd7e2 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/titanium/broodstone_titanium_ore.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_block.png b/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_block.png index 4dfbed4e..ec85776f 100644 Binary files a/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_block.png and b/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_block.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_carpet.png b/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_carpet.png index 4dfbed4e..ec85776f 100644 Binary files a/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_carpet.png and b/common/src/main/resources/assets/antarchy/textures/block/umbral_moss/umbral_moss_carpet.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/block/uranium/broodstone_uranium_ore.png b/common/src/main/resources/assets/antarchy/textures/block/uranium/broodstone_uranium_ore.png new file mode 100644 index 00000000..6eeba5b3 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/block/uranium/broodstone_uranium_ore.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/basilisk_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/basilisk_emissive.png new file mode 100644 index 00000000..d87039b1 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/basilisk_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/bed_bug_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/bed_bug_emissive.png new file mode 100644 index 00000000..d2f1e3f2 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/bed_bug_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/brutalfly_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/brutalfly_emissive.png new file mode 100644 index 00000000..dfc92bee Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/brutalfly_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/creeping_horror_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/creeping_horror_emissive.png new file mode 100644 index 00000000..b905c937 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/creeping_horror_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/glimmer/elka_glimmer_emmisive.png b/common/src/main/resources/assets/antarchy/textures/entity/glimmer/elka_glimmer_emissive.png similarity index 100% rename from common/src/main/resources/assets/antarchy/textures/entity/glimmer/elka_glimmer_emmisive.png rename to common/src/main/resources/assets/antarchy/textures/entity/glimmer/elka_glimmer_emissive.png diff --git a/common/src/main/resources/assets/antarchy/textures/entity/glimmer/frog_glimmer_emmisive.png b/common/src/main/resources/assets/antarchy/textures/entity/glimmer/frog_glimmer_emissive.png similarity index 100% rename from common/src/main/resources/assets/antarchy/textures/entity/glimmer/frog_glimmer_emmisive.png rename to common/src/main/resources/assets/antarchy/textures/entity/glimmer/frog_glimmer_emissive.png diff --git a/common/src/main/resources/assets/antarchy/textures/entity/glimmer/glimmer_ant_emmisive.png b/common/src/main/resources/assets/antarchy/textures/entity/glimmer/glimmer_ant_emissive.png similarity index 100% rename from common/src/main/resources/assets/antarchy/textures/entity/glimmer/glimmer_ant_emmisive.png rename to common/src/main/resources/assets/antarchy/textures/entity/glimmer/glimmer_ant_emissive.png diff --git a/common/src/main/resources/assets/antarchy/textures/entity/glimmer/rabbit_glimmer_emmisive.png b/common/src/main/resources/assets/antarchy/textures/entity/glimmer/rabbit_glimmer_emissive.png similarity index 100% rename from common/src/main/resources/assets/antarchy/textures/entity/glimmer/rabbit_glimmer_emmisive.png rename to common/src/main/resources/assets/antarchy/textures/entity/glimmer/rabbit_glimmer_emissive.png diff --git a/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_emissive.png new file mode 100644 index 00000000..6052ddde Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_pink.png b/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_pink.png deleted file mode 100644 index 4cfd41e9..00000000 Binary files a/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_pink.png and /dev/null differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_pink_saddle.png b/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_pink_saddle.png deleted file mode 100644 index 6c4728bf..00000000 Binary files a/common/src/main/resources/assets/antarchy/textures/entity/hercules_beetle/hercules_beetle_pink_saddle.png and /dev/null differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/jumpy_bug_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/jumpy_bug_emissive.png new file mode 100644 index 00000000..0fdb420d Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/jumpy_bug_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/kraken_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/kraken_emissive.png new file mode 100644 index 00000000..dc644648 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/kraken_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/lurking_terror_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/lurking_terror_emissive.png new file mode 100644 index 00000000..e17f59df Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/lurking_terror_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/spit_bug.png b/common/src/main/resources/assets/antarchy/textures/entity/spit_bug.png new file mode 100644 index 00000000..895cd975 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/spit_bug.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/entity/spit_bug_emissive.png b/common/src/main/resources/assets/antarchy/textures/entity/spit_bug_emissive.png new file mode 100644 index 00000000..3fef0fb8 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/entity/spit_bug_emissive.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/attitude_adjuster/attitude_adjuster.png b/common/src/main/resources/assets/antarchy/textures/item/attitude_adjuster/attitude_adjuster.png new file mode 100644 index 00000000..a34444eb Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/attitude_adjuster/attitude_adjuster.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/attitude_adjuster/attitude_adjuster_item.png b/common/src/main/resources/assets/antarchy/textures/item/attitude_adjuster/attitude_adjuster_item.png new file mode 100644 index 00000000..9203bd0b Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/attitude_adjuster/attitude_adjuster_item.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/broodfruit.png b/common/src/main/resources/assets/antarchy/textures/item/broodfruit.png new file mode 100644 index 00000000..f9de2213 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/broodfruit.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/chiten.png b/common/src/main/resources/assets/antarchy/textures/item/chiten.png new file mode 100644 index 00000000..ff0ea5bf Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/chiten.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/chiten_spike.png b/common/src/main/resources/assets/antarchy/textures/item/chiten_spike.png new file mode 100644 index 00000000..9b66fa38 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/chiten_spike.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/cooked_bug_meat.png b/common/src/main/resources/assets/antarchy/textures/item/cooked_bug_meat.png new file mode 100644 index 00000000..1a3c222c Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/cooked_bug_meat.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/creeping_horror_egg.png b/common/src/main/resources/assets/antarchy/textures/item/creeping_horror_egg.png new file mode 100644 index 00000000..3f83ab76 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/creeping_horror_egg.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/hercules_horn.png b/common/src/main/resources/assets/antarchy/textures/item/hercules_horn.png new file mode 100644 index 00000000..52474a1e Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/hercules_horn.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/jumpy_bug_egg_item.png b/common/src/main/resources/assets/antarchy/textures/item/jumpy_bug_egg_item.png new file mode 100644 index 00000000..820c86db Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/jumpy_bug_egg_item.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/lurking_terror_egg.png b/common/src/main/resources/assets/antarchy/textures/item/lurking_terror_egg.png new file mode 100644 index 00000000..6a372140 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/lurking_terror_egg.png differ diff --git a/common/src/main/resources/assets/antarchy/textures/item/raw_bug_meat.png b/common/src/main/resources/assets/antarchy/textures/item/raw_bug_meat.png new file mode 100644 index 00000000..60d444d1 Binary files /dev/null and b/common/src/main/resources/assets/antarchy/textures/item/raw_bug_meat.png differ diff --git a/common/src/main/resources/data/antarchy/advancement/beetle_buddies.json b/common/src/main/resources/data/antarchy/advancement/beetle_buddies.json new file mode 100644 index 00000000..1df7e2a0 --- /dev/null +++ b/common/src/main/resources/data/antarchy/advancement/beetle_buddies.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "tame_hercules_beetle": { + "conditions": { + "entity": { + "type": "antarchy:hercules_beetle" + } + }, + "trigger": "minecraft:tame_animal" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.beetle_buddies.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:hercules_beetle_spawn_egg" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.beetle_buddies.title" + } + }, + "requirements": [ + [ + "tame_hercules_beetle" + ] + ], + "sends_telemetry_event": true +} diff --git a/common/src/main/resources/data/antarchy/advancement/behavioral_correction.json b/common/src/main/resources/data/antarchy/advancement/behavioral_correction.json new file mode 100644 index 00000000..4b6e4d2a --- /dev/null +++ b/common/src/main/resources/data/antarchy/advancement/behavioral_correction.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "obtain_attitude_adjuster": { + "conditions": { + "items": [ + { + "items": "antarchy:attitude_adjuster" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.behavioral_correction.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:attitude_adjuster" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.behavioral_correction.title" + } + }, + "requirements": [ + [ + "obtain_attitude_adjuster" + ] + ], + "sends_telemetry_event": true +} diff --git a/common/src/main/resources/data/antarchy/advancement/bug_apetit.json b/common/src/main/resources/data/antarchy/advancement/bug_apetit.json new file mode 100644 index 00000000..fe7e3477 --- /dev/null +++ b/common/src/main/resources/data/antarchy/advancement/bug_apetit.json @@ -0,0 +1,36 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "eat_cooked_bug_meat": { + "conditions": { + "item": { + "items": [ + "antarchy:cooked_bug_meat" + ] + } + }, + "trigger": "minecraft:consume_item" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.bug_apetit.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:cooked_bug_meat" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.bug_apetit.title" + } + }, + "requirements": [ + [ + "eat_cooked_bug_meat" + ] + ], + "sends_telemetry_event": true +} diff --git a/common/src/main/resources/data/antarchy/advancement/herculean_task.json b/common/src/main/resources/data/antarchy/advancement/herculean_task.json new file mode 100644 index 00000000..4299904f --- /dev/null +++ b/common/src/main/resources/data/antarchy/advancement/herculean_task.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:adventure/root", + "criteria": { + "kill_hercules_beetle": { + "conditions": { + "entity": { + "type": "antarchy:hercules_beetle" + } + }, + "trigger": "minecraft:player_killed_entity" + } + }, + "display": { + "announce_to_chat": true, + "description": { + "translate": "advancements.antarchy.herculean_task.description" + }, + "frame": "task", + "icon": { + "count": 1, + "id": "antarchy:hercules_horn" + }, + "show_toast": true, + "title": { + "translate": "advancements.antarchy.herculean_task.title" + } + }, + "requirements": [ + [ + "kill_hercules_beetle" + ] + ], + "sends_telemetry_event": true +} diff --git a/common/src/main/resources/data/antarchy/damage_type/hercules_beetle_obliteration.json b/common/src/main/resources/data/antarchy/damage_type/hercules_beetle_obliteration.json new file mode 100644 index 00000000..e9fba373 --- /dev/null +++ b/common/src/main/resources/data/antarchy/damage_type/hercules_beetle_obliteration.json @@ -0,0 +1,7 @@ +{ + "message_id": "hercules_beetle_obliteration", + "scaling": "when_caused_by_living_non_player", + "exhaustion": 0.1, + "effects": "hurt", + "death_message_type": "default" +} diff --git a/common/src/main/resources/data/antarchy/damage_type/jumpy_bug_jump.json b/common/src/main/resources/data/antarchy/damage_type/jumpy_bug_jump.json new file mode 100644 index 00000000..e6c918fb --- /dev/null +++ b/common/src/main/resources/data/antarchy/damage_type/jumpy_bug_jump.json @@ -0,0 +1,7 @@ +{ + "message_id": "jumpy_bug_jump", + "scaling": "when_caused_by_living_non_player", + "exhaustion": 0.1, + "effects": "hurt", + "death_message_type": "default" +} diff --git a/common/src/main/resources/data/antarchy/damage_type/spit_bug_disrespect.json b/common/src/main/resources/data/antarchy/damage_type/spit_bug_disrespect.json new file mode 100644 index 00000000..69faaa7a --- /dev/null +++ b/common/src/main/resources/data/antarchy/damage_type/spit_bug_disrespect.json @@ -0,0 +1,7 @@ +{ + "message_id": "spit_bug_disrespect", + "scaling": "when_caused_by_living_non_player", + "exhaustion": 0.1, + "effects": "hurt", + "death_message_type": "default" +} diff --git a/common/src/main/resources/data/antarchy/dimension/cavaryn.json b/common/src/main/resources/data/antarchy/dimension/cavaryn.json new file mode 100644 index 00000000..6d3e52ae --- /dev/null +++ b/common/src/main/resources/data/antarchy/dimension/cavaryn.json @@ -0,0 +1,102 @@ +{ + "type": "antarchy:cavaryn", + "generator": { + "type": "minecraft:noise", + "settings": "antarchy:cavaryn", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "parameters": { + "temperature": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 0.85 + ], + "continentalness": [ + -1.0, + 1.0 + ], + "erosion": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ], + "depth": [ + -2.0, + -0.1 + ], + "offset": 0.0 + }, + "biome": "antarchy:cavaryn" + }, + { + "parameters": { + "temperature": [ + -1.0, + 1.0 + ], + "humidity": [ + 0.85, + 1.0 + ], + "continentalness": [ + -1.0, + 1.0 + ], + "erosion": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ], + "depth": [ + -2.0, + -0.1 + ], + "offset": 0.0 + }, + "biome": "antarchy:glowcap_caves" + }, + { + "parameters": { + "temperature": [ + -1.0, + 1.0 + ], + "humidity": [ + -1.0, + 1.0 + ], + "continentalness": [ + -1.0, + 1.0 + ], + "erosion": [ + -1.0, + 1.0 + ], + "weirdness": [ + -1.0, + 1.0 + ], + "depth": [ + -0.1, + 2.0 + ], + "offset": 0.0 + }, + "biome": "antarchy:brooding_tunnels" + } + ] + } + } +} diff --git a/common/src/main/resources/data/antarchy/dimension_type/cavaryn.json b/common/src/main/resources/data/antarchy/dimension_type/cavaryn.json new file mode 100644 index 00000000..5aed0ffe --- /dev/null +++ b/common/src/main/resources/data/antarchy/dimension_type/cavaryn.json @@ -0,0 +1,20 @@ +{ + "ultrawarm": true, + "natural": false, + "coordinate_scale": 64.0, + "bed_works": false, + "respawn_anchor_works": false, + "min_y": 0, + "height": 208, + "logical_height": 192, + "infiniburn": "#minecraft:infiniburn_overworld", + "effects": "minecraft:overworld", + "ambient_light": 0.015, + "piglin_safe": false, + "has_raids": false, + "monster_spawn_light_level": 0, + "monster_spawn_block_light_limit": 0, + "has_skylight": false, + "has_ceiling": true, + "fixed_time": 18000 +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/amber_lichen.json b/common/src/main/resources/data/antarchy/loot_table/blocks/amber_lichen.json new file mode 100644 index 00000000..dfba2794 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/amber_lichen.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:amber_lichen" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/amber_lichen" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_block.json b/common/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_block.json new file mode 100644 index 00000000..a8bfc055 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:amber_moss_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/amber_moss_block" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_carpet.json b/common/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_carpet.json new file mode 100644 index 00000000..7e68cad1 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/amber_moss_carpet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:amber_moss_carpet" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/amber_moss_carpet" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/bile_vein.json b/common/src/main/resources/data/antarchy/loot_table/blocks/bile_vein.json new file mode 100644 index 00000000..32eb33c8 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/bile_vein.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:bile_vein" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/bile_vein" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone.json new file mode 100644 index 00000000..127d6661 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/broodstone" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_slab.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_slab.json new file mode 100644 index 00000000..3b654ece --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_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:broodstone_brick_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:broodstone_brick_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/broodstone_brick_slab" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_stairs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_stairs.json new file mode 100644 index 00000000..66b18f76 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_wall.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_wall.json new file mode 100644 index 00000000..ca98b9a5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_brick_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_bricks.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_bricks.json new file mode 100644 index 00000000..800d7a1a --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_bricks.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_slab.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_slab.json new file mode 100644 index 00000000..fd22e35a --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_slab.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "conditions": [ + { + "block": "antarchy:broodstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:broodstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/broodstone_slab" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_stairs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_stairs.json new file mode 100644 index 00000000..61531b81 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_titanium_ore.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_titanium_ore.json new file mode 100644 index 00000000..e82655e1 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_titanium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_titanium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_titanium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_uranium_ore.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_uranium_ore.json new file mode 100644 index 00000000..adc15d84 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_uranium_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_uranium_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "components": { + "minecraft:enchantments": { + "levels": { + "minecraft:silk_touch": 1 + } + } + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "antarchy:raw_uranium_scrap", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_wall.json b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_wall.json new file mode 100644 index 00000000..b611acf6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/broodstone_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:broodstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/chiseled_broodstone.json b/common/src/main/resources/data/antarchy/loot_table/blocks/chiseled_broodstone.json new file mode 100644 index 00000000..2fe7e767 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/chiseled_broodstone.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiseled_broodstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/chiten_block.json b/common/src/main/resources/data/antarchy/loot_table/blocks/chiten_block.json new file mode 100644 index 00000000..c53e8175 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/chiten_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiten_block" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/chiten_block" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/chiten_spike.json b/common/src/main/resources/data/antarchy/loot_table/blocks/chiten_spike.json new file mode 100644 index 00000000..b1d9fae3 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/chiten_spike.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiten_spike" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_egg.json b/common/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_egg.json new file mode 100644 index 00000000..836c069c --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_egg.json @@ -0,0 +1,91 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:creeping_horror_egg", + "properties": { + "eggs": "4" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 4.0 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:creeping_horror_egg" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:creeping_horror_egg", + "properties": { + "eggs": "3" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 3.0 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:creeping_horror_egg" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:creeping_horror_egg", + "properties": { + "eggs": "2" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 2.0 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:creeping_horror_egg" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:creeping_horror_egg" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/turtle_egg" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_eggs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_eggs.json new file mode 100644 index 00000000..ee8223b7 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/creeping_horror_eggs.json @@ -0,0 +1 @@ +{"type":"minecraft:block","pools":[]} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/creepvine.json b/common/src/main/resources/data/antarchy/loot_table/blocks/creepvine.json new file mode 100644 index 00000000..e1abf289 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/creepvine.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:creepvine" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/creepvine" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/critter_cage_block.json b/common/src/main/resources/data/antarchy/loot_table/blocks/critter_cage_block.json new file mode 100644 index 00000000..88290b1f --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/critter_cage_block.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:critter_cage" + } + ], + "functions": [ + { + "function": "minecraft:copy_components", + "source": "block_entity" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom.json b/common/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom.json new file mode 100644 index 00000000..0fe88a8e --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom" + } + ] + } + ], + "random_sequence": "antarchy:blocks/glowcap_mushroom" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom_block.json b/common/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom_block.json new file mode 100644 index 00000000..af92253f --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/glowcap_mushroom_block.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 2.0 + } + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 2 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/glowcap_mushroom_block" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/hanging_creeproots.json b/common/src/main/resources/data/antarchy/loot_table/blocks/hanging_creeproots.json new file mode 100644 index 00000000..3a6dfc7e --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/hanging_creeproots.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:hanging_creeproots" + } + ] + } + ], + "random_sequence": "antarchy:blocks/hanging_creeproots" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/jumpy_bug_egg.json b/common/src/main/resources/data/antarchy/loot_table/blocks/jumpy_bug_egg.json new file mode 100644 index 00000000..56e63d63 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/jumpy_bug_egg.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:jumpy_bug_egg" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "antarchy:blocks/jumpy_bug_egg" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_egg.json b/common/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_egg.json new file mode 100644 index 00000000..8f78d48b --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_egg.json @@ -0,0 +1,91 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:lurking_terror_egg", + "properties": { + "eggs": "4" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 4.0 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:lurking_terror_egg" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:lurking_terror_egg", + "properties": { + "eggs": "3" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 3.0 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:lurking_terror_egg" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "antarchy:lurking_terror_egg", + "properties": { + "eggs": "2" + } + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 2.0 + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:lurking_terror_egg" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:lurking_terror_egg" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/turtle_egg" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_eggs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_eggs.json new file mode 100644 index 00000000..ee8223b7 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/lurking_terror_eggs.json @@ -0,0 +1 @@ +{"type":"minecraft:block","pools":[]} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/molting_vines.json b/common/src/main/resources/data/antarchy/loot_table/blocks/molting_vines.json new file mode 100644 index 00000000..35966857 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/molting_vines.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:molting_vines" + } + ] + } + ], + "random_sequence": "antarchy:blocks/molting_vines" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/myrmite.json b/common/src/main/resources/data/antarchy/loot_table/blocks/myrmite.json new file mode 100644 index 00000000..fd82e19e --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/myrmite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:myrmite" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/myrmite" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone.json new file mode 100644 index 00000000..6820fe85 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_broodstone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_slab.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_slab.json new file mode 100644 index 00000000..10ca4083 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_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_broodstone_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "antarchy:polished_broodstone_slab" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "antarchy:blocks/polished_broodstone_slab" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_stairs.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_stairs.json new file mode 100644 index 00000000..dd45fc50 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_stairs.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_broodstone_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_wall.json b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_wall.json new file mode 100644 index 00000000..28fae763 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/polished_broodstone_wall.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:polished_broodstone_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/blocks/potted_glowcap_mushroom.json b/common/src/main/resources/data/antarchy/loot_table/blocks/potted_glowcap_mushroom.json new file mode 100644 index 00000000..c7a9f5e6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/blocks/potted_glowcap_mushroom.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:glowcap_mushroom" + } + ] + } + ], + "random_sequence": "antarchy:blocks/potted_glowcap_mushroom" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json b/common/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json index bd585f00..b8b41c39 100644 --- a/common/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json +++ b/common/src/main/resources/data/antarchy/loot_table/entities/alpha_mantis.json @@ -84,6 +84,34 @@ } } ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 6.0, + "max": 10.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 3.0 + } + } + ] } ], "random_sequence": "antarchy:entities/alpha_mantis" diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/creeping_horror.json b/common/src/main/resources/data/antarchy/loot_table/entities/creeping_horror.json new file mode 100644 index 00000000..513e710d --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/creeping_horror.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiten", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/creeping_horror" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/hercules_beetle.json b/common/src/main/resources/data/antarchy/loot_table/entities/hercules_beetle.json new file mode 100644 index 00000000..a30541b2 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/hercules_beetle.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:hercules_horn", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/hercules_beetle" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/jumpy_bug.json b/common/src/main/resources/data/antarchy/loot_table/entities/jumpy_bug.json new file mode 100644 index 00000000..ac0ff303 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/jumpy_bug.json @@ -0,0 +1,94 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:jumpy_bug_leg", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiten", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ] + } + ] +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/lurking_terror.json b/common/src/main/resources/data/antarchy/loot_table/entities/lurking_terror.json new file mode 100644 index 00000000..ee2d7233 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/lurking_terror.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiten", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/lurking_terror" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/mantis.json b/common/src/main/resources/data/antarchy/loot_table/entities/mantis.json index 3131aa0b..3e426059 100644 --- a/common/src/main/resources/data/antarchy/loot_table/entities/mantis.json +++ b/common/src/main/resources/data/antarchy/loot_table/entities/mantis.json @@ -33,6 +33,34 @@ } } ] + }, + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] } ], "random_sequence": "antarchy:entities/mantis" diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/spit_bug.json b/common/src/main/resources/data/antarchy/loot_table/entities/spit_bug.json new file mode 100644 index 00000000..286621a3 --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/spit_bug.json @@ -0,0 +1,72 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:chiten", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:raw_bug_meat", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + } + }, + { + "function": "minecraft:enchanted_count_increase", + "enchantment": "minecraft:looting", + "count": { + "type": "minecraft:uniform", + "min": 0.0, + "max": 1.0 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ] + } + ], + "random_sequence": "antarchy:entities/spit_bug" +} diff --git a/common/src/main/resources/data/antarchy/loot_table/entities/stink_bug.json b/common/src/main/resources/data/antarchy/loot_table/entities/stink_bug.json new file mode 100644 index 00000000..a392269a --- /dev/null +++ b/common/src/main/resources/data/antarchy/loot_table/entities/stink_bug.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "antarchy:stink_bug" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 1.0 + } + } + ] + } + ], + "random_sequence": "antarchy:entities/stink_bug" +} diff --git a/common/src/main/resources/data/antarchy/recipe/attitude_adjuster.json b/common/src/main/resources/data/antarchy/recipe/attitude_adjuster.json new file mode 100644 index 00000000..c2781187 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/attitude_adjuster.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "HUH", + " S ", + " S " + ], + "key": { + "H": { + "item": "antarchy:hercules_horn" + }, + "U": { + "item": "antarchy:uranium_block" + }, + "S": { + "item": "minecraft:netherite_ingot" + } + }, + "result": { + "id": "antarchy:attitude_adjuster", + "count": 1 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/big_bertha_blade.json b/common/src/main/resources/data/antarchy/recipe/big_bertha_blade.json index a75a5b87..b887a7b6 100644 --- a/common/src/main/resources/data/antarchy/recipe/big_bertha_blade.json +++ b/common/src/main/resources/data/antarchy/recipe/big_bertha_blade.json @@ -23,7 +23,7 @@ "item": "antarchy:cloud_shark_fin" }, "F": { - "item": "antarchy:nightmare_scale" + "item": "antarchy:kraken_tentacle" }, "G": { "item": "antarchy:kraken_tooth" diff --git a/common/src/main/resources/data/antarchy/recipe/big_bertha_handle.json b/common/src/main/resources/data/antarchy/recipe/big_bertha_handle.json index 461428b6..40979ca6 100644 --- a/common/src/main/resources/data/antarchy/recipe/big_bertha_handle.json +++ b/common/src/main/resources/data/antarchy/recipe/big_bertha_handle.json @@ -17,7 +17,7 @@ "item": "antarchy:triffid_goo" }, "D": { - "item": "antarchy:primordial_scute" + "item": "antarchy:cooked_corndog" }, "G": { "item": "antarchy:gravity_gun" diff --git a/common/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json b/common/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json index 83322fd6..2bdad513 100644 --- a/common/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json +++ b/common/src/main/resources/data/antarchy/recipe/big_bertha_hilt.json @@ -3,18 +3,30 @@ "category": "misc", "pattern": [ "AC ", - "CBC", - " CA" + "DBG", + " EF" ], "key": { "A": { - "item": "antarchy:vortex_eye" + "item": "antarchy:nightmare_scale" }, "B": { "item": "antarchy:molevore_nose" }, "C": { "item": "antarchy:jumpy_bug_leg" + }, + "D": { + "item": "antarchy:chiten" + }, + "E": { + "item": "antarchy:rainbow_sugar" + }, + "F": { + "item": "antarchy:primordial_scute" + }, + "G": { + "item": "antarchy:hercules_horn" } }, "result": { diff --git a/common/src/main/resources/data/antarchy/recipe/bone_meal_from_chiten.json b/common/src/main/resources/data/antarchy/recipe/bone_meal_from_chiten.json new file mode 100644 index 00000000..1b4f069e --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/bone_meal_from_chiten.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:chiten" + } + ], + "result": { + "id": "minecraft:bone_meal", + "count": 3 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_brick_slab.json b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_slab.json new file mode 100644 index 00000000..daeac16f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone_bricks" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_brick_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_brick_slab_from_broodstone_bricks_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_slab_from_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..48371bba --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_slab_from_broodstone_bricks_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone_bricks" + }, + "result": { + "count": 2, + "id": "antarchy:broodstone_brick_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs.json b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs.json new file mode 100644 index 00000000..fa36a258 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone_bricks" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:broodstone_brick_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs_from_broodstone_bricks_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs_from_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..481801a5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_stairs_from_broodstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone_bricks" + }, + "result": { + "id": "antarchy:broodstone_brick_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_brick_wall.json b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_wall.json new file mode 100644 index 00000000..d8f7a9c7 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone_bricks" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_brick_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_brick_wall_from_broodstone_bricks_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_wall_from_broodstone_bricks_stonecutting.json new file mode 100644 index 00000000..5df8a9b7 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_brick_wall_from_broodstone_bricks_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone_bricks" + }, + "result": { + "id": "antarchy:broodstone_brick_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_bricks.json b/common/src/main/resources/data/antarchy/recipe/broodstone_bricks.json new file mode 100644 index 00000000..08290683 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_bricks.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:broodstone_bricks" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_bricks_from_polished_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_bricks_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..064aee73 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_bricks_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:broodstone_bricks" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_slab.json b/common/src/main/resources/data/antarchy/recipe/broodstone_slab.json new file mode 100644 index 00000000..7aa1ba74 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_slab_from_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_slab_from_broodstone_stonecutting.json new file mode 100644 index 00000000..f701c62a --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_slab_from_broodstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "count": 2, + "id": "antarchy:broodstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_stairs.json b/common/src/main/resources/data/antarchy/recipe/broodstone_stairs.json new file mode 100644 index 00000000..bea9e4ba --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:broodstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_stairs_from_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_stairs_from_broodstone_stonecutting.json new file mode 100644 index 00000000..1ac55f41 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_stairs_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:broodstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_wall.json b/common/src/main/resources/data/antarchy/recipe/broodstone_wall.json new file mode 100644 index 00000000..e779da0c --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:broodstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/broodstone_wall_from_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/broodstone_wall_from_broodstone_stonecutting.json new file mode 100644 index 00000000..5a4834f0 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/broodstone_wall_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:broodstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/chiseled_broodstone.json b/common/src/main/resources/data/antarchy/recipe/chiseled_broodstone.json new file mode 100644 index 00000000..3f830b8f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/chiseled_broodstone.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "id": "antarchy:chiseled_broodstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/chiseled_broodstone_from_polished_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/chiseled_broodstone_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..98b428d4 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/chiseled_broodstone_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:chiseled_broodstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/chiten_block.json b/common/src/main/resources/data/antarchy/recipe/chiten_block.json new file mode 100644 index 00000000..749134a9 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/chiten_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:chiten" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "id": "antarchy:chiten_block", + "count": 1 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/chiten_from_chiten_block.json b/common/src/main/resources/data/antarchy/recipe/chiten_from_chiten_block.json new file mode 100644 index 00000000..6047f3cb --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/chiten_from_chiten_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "antarchy:chiten_block" + } + ], + "result": { + "id": "antarchy:chiten", + "count": 9 + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smelting.json b/common/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smelting.json new file mode 100644 index 00000000..56a09fae --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smelting.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smelting", + "category": "food", + "cookingtime": 200, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_bug_meat" + }, + "result": { + "id": "antarchy:cooked_bug_meat" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smoking.json b/common/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smoking.json new file mode 100644 index 00000000..6a4798e6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/cooked_bug_meat_from_smoking.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smoking", + "category": "food", + "cookingtime": 100, + "experience": 0.35, + "ingredient": { + "item": "antarchy:raw_bug_meat" + }, + "result": { + "id": "antarchy:cooked_bug_meat" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone.json new file mode 100644 index 00000000..22d25709 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:broodstone" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "antarchy:polished_broodstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_from_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_from_broodstone_stonecutting.json new file mode 100644 index 00000000..755f5085 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_from_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:broodstone" + }, + "result": { + "id": "antarchy:polished_broodstone" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_slab.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_slab.json new file mode 100644 index 00000000..885a0efa --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_broodstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_slab_from_polished_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_slab_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..47dc204a --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_slab_from_polished_broodstone_stonecutting.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "count": 2, + "id": "antarchy:polished_broodstone_slab" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs.json new file mode 100644 index 00000000..aa1a9609 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "id": "antarchy:polished_broodstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs_from_polished_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..6f366781 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_stairs_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:polished_broodstone_stairs" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_wall.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_wall.json new file mode 100644 index 00000000..40bac9a7 --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "antarchy:polished_broodstone" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "antarchy:polished_broodstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/polished_broodstone_wall_from_polished_broodstone_stonecutting.json b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_wall_from_polished_broodstone_stonecutting.json new file mode 100644 index 00000000..5563a05f --- /dev/null +++ b/common/src/main/resources/data/antarchy/recipe/polished_broodstone_wall_from_polished_broodstone_stonecutting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "antarchy:polished_broodstone" + }, + "result": { + "id": "antarchy:polished_broodstone_wall" + } +} diff --git a/common/src/main/resources/data/antarchy/recipe/raw_corndog.json b/common/src/main/resources/data/antarchy/recipe/raw_corndog.json index 6d5e09fb..e569ba5c 100644 --- a/common/src/main/resources/data/antarchy/recipe/raw_corndog.json +++ b/common/src/main/resources/data/antarchy/recipe/raw_corndog.json @@ -13,8 +13,8 @@ } }, "pattern": [ - "CCC", - " # ", + " C ", + "C#C", " S " ], "result": { diff --git a/common/src/main/resources/data/antarchy/tags/block/amber_moss_replaceable.json b/common/src/main/resources/data/antarchy/tags/block/amber_moss_replaceable.json new file mode 100644 index 00000000..7c1185df --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/block/amber_moss_replaceable.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:moss_replaceable", + "antarchy:myrmite", + "antarchy:broodstone", + "antarchy:amber_moss_block" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/block/cavaryn_portal_frames.json b/common/src/main/resources/data/antarchy/tags/block/cavaryn_portal_frames.json new file mode 100644 index 00000000..2976b86e --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/block/cavaryn_portal_frames.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/block/hercules_beetle_charge_immune_blocks.json b/common/src/main/resources/data/antarchy/tags/block/hercules_beetle_charge_immune_blocks.json new file mode 100644 index 00000000..5234c475 --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/block/hercules_beetle_charge_immune_blocks.json @@ -0,0 +1,18 @@ +{ + "replace": false, + "values": [ + "minecraft:bedrock", + "minecraft:obsidian", + "minecraft:crying_obsidian", + "minecraft:barrier", + "minecraft:command_block", + "minecraft:chain_command_block", + "minecraft:repeating_command_block", + "minecraft:structure_block", + "minecraft:jigsaw", + "minecraft:structure_void", + "minecraft:end_portal_frame", + "minecraft:end_portal", + "minecraft:end_gateway" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/block/rolly_cavern_carveable.json b/common/src/main/resources/data/antarchy/tags/block/rolly_cavern_carveable.json new file mode 100644 index 00000000..d57688a4 --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/block/rolly_cavern_carveable.json @@ -0,0 +1,16 @@ +{ + "values": [ + "antarchy:myrmite", + "antarchy:broodstone", + "antarchy:amber_moss_block", + "antarchy:amber_moss_carpet", + "minecraft:stone", + "minecraft:deepslate", + "minecraft:dirt", + "minecraft:moss_block", + "minecraft:moss_carpet", + "minecraft:short_grass", + "minecraft:tall_grass", + "minecraft:clay" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/block/termite_foods.json b/common/src/main/resources/data/antarchy/tags/block/termite_foods.json new file mode 100644 index 00000000..54c986bb --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/block/termite_foods.json @@ -0,0 +1,14 @@ +{ + "replace": false, + "values": [ + "#minecraft:planks", + "#minecraft:logs", + "#minecraft:wooden_slabs", + "#minecraft:wooden_stairs", + "#minecraft:wooden_doors", + "#minecraft:wooden_trapdoors", + "#minecraft:wooden_fences", + "#minecraft:wooden_pressure_plates", + "#minecraft:wooden_buttons" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/item/hercules_beetle_food.json b/common/src/main/resources/data/antarchy/tags/item/hercules_beetle_food.json new file mode 100644 index 00000000..0f2f4352 --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/item/hercules_beetle_food.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:glow_berries" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/item/rolly_polly_food.json b/common/src/main/resources/data/antarchy/tags/item/rolly_polly_food.json new file mode 100644 index 00000000..4c6d4e2a --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/item/rolly_polly_food.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:glow_berries", + "minecraft:sweet_berries" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/item/termite_activation_items.json b/common/src/main/resources/data/antarchy/tags/item/termite_activation_items.json new file mode 100644 index 00000000..90f5f079 --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/item/termite_activation_items.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:stick" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/item/termite_breeding_foods.json b/common/src/main/resources/data/antarchy/tags/item/termite_breeding_foods.json new file mode 100644 index 00000000..d280b15e --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/item/termite_breeding_foods.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "#minecraft:logs", + "#minecraft:planks", + "#minecraft:wooden_slabs", + "#minecraft:wooden_stairs", + "#minecraft:wooden_fences", + "#minecraft:fence_gates", + "#minecraft:wooden_doors", + "#minecraft:wooden_trapdoors", + "#minecraft:wooden_pressure_plates", + "#minecraft:wooden_buttons", + "minecraft:stick", + "minecraft:bowl", + "minecraft:ladder", + "minecraft:crafting_table", + "minecraft:chest", + "minecraft:barrel" + ] +} diff --git a/common/src/main/resources/data/antarchy/tags/item/termite_foods.json b/common/src/main/resources/data/antarchy/tags/item/termite_foods.json new file mode 100644 index 00000000..5d341ba2 --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/item/termite_foods.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} diff --git a/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json b/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json new file mode 100644 index 00000000..34d6084e --- /dev/null +++ b/common/src/main/resources/data/antarchy/tags/worldgen/biome/is_cavaryn.json @@ -0,0 +1,7 @@ +{ + "values": [ + "antarchy:cavaryn", + "antarchy:brooding_tunnels", + "antarchy:rolly_caves" + ] +} diff --git a/common/src/main/resources/data/antarchy/trayaurus_trades/default.json b/common/src/main/resources/data/antarchy/trayaurus_trades/default.json index e9b34d41..7c3696bd 100644 --- a/common/src/main/resources/data/antarchy/trayaurus_trades/default.json +++ b/common/src/main/resources/data/antarchy/trayaurus_trades/default.json @@ -2,11 +2,11 @@ "trades": [ { "buy": { - "item": "antarchy:uranium_ingot", - "count": 4 + "item": "antarchy:emerald", + "count": 7 }, "sell": { - "item": "minecraft:spyglass", + "item": "minecraft:root_beer", "count": 1 }, "max_uses": 16, @@ -15,12 +15,12 @@ }, { "buy": { - "item": "antarchy:titanium_ingot", - "count": 6 + "item": "antarchy:cooked_corn_dog", + "count": 3 }, "sell": { "item": "antarchy:duct_tape", - "count": 2 + "count": 1 }, "max_uses": 12, "villager_xp": 5, @@ -48,6 +48,10 @@ "item": "antarchy:titanium_ingot", "count": 10 }, + "second_buy": { + "item": "antarchy:emperor_scorpion_stinger", + "count": 1 + }, "sell": { "item": "antarchy:easter_bunny_spawn_egg", "count": 1 @@ -59,14 +63,14 @@ { "buy": { "item": "antarchy:uranium_ingot", - "count": 16 + "count": 1 }, "second_buy": { "item": "antarchy:titanium_ingot", - "count": 8 + "count": 1 }, "sell": { - "item": "minecraft:enchanted_golden_apple", + "item": "antarchy:spirit_apple", "count": 1 }, "max_uses": 2, diff --git a/common/src/main/resources/data/antarchy/weapon_attributes/attitude_adjuster.json b/common/src/main/resources/data/antarchy/weapon_attributes/attitude_adjuster.json new file mode 100644 index 00000000..8670a024 --- /dev/null +++ b/common/src/main/resources/data/antarchy/weapon_attributes/attitude_adjuster.json @@ -0,0 +1,41 @@ +{ + "parent": "bettercombat:heavy_axe", + "attributes" : { + "attack_range": 3.5, + "pose": "bettercombat:pose_two_handed_heavy", + "category": "greathammer", + "two_handed": true, + "attacks": [ + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1, + "angle": 180, + "upswing": 0.5, + "animation": "bettercombat:two_handed_slash_horizontal_left", + "swing_sound": { + "id": "bettercombat:double_axe_swing" + } + }, + { + "hitbox": "HORIZONTAL_PLANE", + "damage_multiplier": 1, + "angle": 180, + "upswing": 0.5, + "animation": "bettercombat:two_handed_slash_horizontal_right", + "swing_sound": { + "id": "bettercombat:double_axe_swing" + } + }, + { + "hitbox": "FORWARD_BOX", + "damage_multiplier": 1.5, + "angle": 0, + "upswing": 0.5, + "animation": "bettercombat:two_handed_slam", + "swing_sound": { + "id": "bettercombat:hammer_slam" + } + } + ] + } +} \ No newline at end of file diff --git a/common/src/main/resources/data/antarchy/weapon_attributes/krakens_grasp.json b/common/src/main/resources/data/antarchy/weapon_attributes/krakens_grasp.json new file mode 100644 index 00000000..8d3980c1 --- /dev/null +++ b/common/src/main/resources/data/antarchy/weapon_attributes/krakens_grasp.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:rapier" +} \ No newline at end of file diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json b/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json new file mode 100644 index 00000000..5172fc4a --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/biome/brooding_tunnels.json @@ -0,0 +1,87 @@ +{ + "has_precipitation": false, + "temperature": 0.45, + "downfall": 0.0, + "effects": { + "fog_color": 655360, + "water_color": 327680, + "water_fog_color": 0, + "sky_color": 262144, + "grass_color": 2763554, + "foliage_color": 2763554, + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 1200000, + "block_search_extent": 8, + "offset": 2.0 + }, + "particle": { + "probability": 0.003, + "options": { + "type": "antarchy:orange_ash" + } + } + }, + "spawn_costs": { + "antarchy:jumpy_bug": { + "energy_budget": 0.2, + "charge": 9 + }, + "antarchy:spit_bug": { + "energy_budget": 0.7, + "charge": 6 + } + }, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [ + "antarchy:broodstone_uranium_ore", + "antarchy:broodstone_titanium_ore" + ], + [], + [ + "antarchy:cavaryn_bile_veins", + "antarchy:termite_nest" + ], + [ + "antarchy:cavaryn_bile_cysts", + "antarchy:brooding_tunnels_creepvine", + "antarchy:brooding_tunnels_hanging_creeproots", + "antarchy:molting_vines", + "antarchy:jumpy_bug_egg_ceiling" + ] + ], + "creature_spawn_probability": 0.06, + "spawners": { + "monster": [ + { + "type": "antarchy:jumpy_bug", + "weight": 95, + "minCount": 1, + "maxCount": 3 + }, + { + "type": "antarchy:spit_bug", + "weight": 95, + "minCount": 2, + "maxCount": 5 + } + ], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json b/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json new file mode 100644 index 00000000..696c2b8b --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/biome/cavaryn.json @@ -0,0 +1,94 @@ +{ + "has_precipitation": false, + "temperature": 0.45, + "downfall": 0.0, + "effects": { + "fog_color": 983040, + "water_color": 327680, + "water_fog_color": 0, + "sky_color": 524288, + "grass_color": 4211262, + "foliage_color": 4211262, + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 1200000, + "block_search_extent": 8, + "offset": 2.0 + }, + "particle": { + "probability": 0.002, + "options": { + "type": "antarchy:orange_ash" + } + } + }, + "spawn_costs": { + "antarchy:hercules_beetle": { + "energy_budget": 0.2, + "charge": 15 + } + }, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [], + [], + [ + "antarchy:cavaryn_bile_veins", + "antarchy:cavaryn_bile_cysts", + "antarchy:cavaryn_chiten_spikes", + "antarchy:cavaryn_terror_egg_patch", + "antarchy:termite_nest" + ], + [ + "antarchy:cavaryn_wall_amber_moss", + "antarchy:cavaryn_creepvine", + "antarchy:cavaryn_hanging_creeproots" + ] + ], + "creature_spawn_probability": 0.06, + "spawners": { + "monster": [ + { + "type": "antarchy:creeping_horror", + "weight": 95, + "minCount": 2, + "maxCount": 5 + }, + { + "type": "antarchy:lurking_terror", + "weight": 95, + "minCount": 2, + "maxCount": 5 + }, + { + "type": "antarchy:hercules_beetle", + "weight": 5, + "minCount": 1, + "maxCount": 1 + } + ], + "creature": [ + { + "type": "antarchy:stink_bug", + "weight": 10, + "minCount": 1, + "maxCount": 3 + } + ], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json b/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json new file mode 100644 index 00000000..879cfe25 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/biome/glowcap_caves.json @@ -0,0 +1,82 @@ +{ + "has_precipitation": false, + "temperature": 0.68, + "downfall": 0.35, + "effects": { + "fog_color": 12034454, + "water_color": 9453328, + "water_fog_color": 5643034, + "sky_color": 10787353, + "grass_color": 16744192, + "foliage_color": 16722688, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 40000, + "block_search_extent": 8, + "offset": 2.0 + }, + "particle": { + "probability": 0.004, + "options": { + "type": "antarchy:orange_ash" + } + } + }, + "spawn_costs": {}, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [ + "antarchy:glowcap_caves_floor_patch", + "antarchy:glowcap_caves_huge_glowcap_mushroom", + "antarchy:glowcap_caves_molting_vines", + "antarchy:glowcap_caves_wall_amber_moss", + "antarchy:termite_nest" + ], + [] + ], + "creature_spawn_probability": 0.09, + "spawners": { + "monster": [ + { + "type": "antarchy:creeping_horror", + "weight": 95, + "minCount": 2, + "maxCount": 5 + }, + { + "type": "antarchy:lurking_terror", + "weight": 95, + "minCount": 2, + "maxCount": 5 + } + ], + "creature": [ + { + "type": "antarchy:stink_bug", + "weight": 32, + "minCount": 2, + "maxCount": 4 + } + ], + "ambient": [ + ], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json b/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json new file mode 100644 index 00000000..c48d89b0 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/biome/rolly_caves.json @@ -0,0 +1,77 @@ +{ + "has_precipitation": false, + "temperature": 0.7, + "downfall": 0.6, + "effects": { + "fog_color": 4867366, + "water_color": 6591296, + "water_fog_color": 2440734, + "sky_color": 1710351, + "grass_color": 10275406, + "foliage_color": 10275406, + "mood_sound": { + "sound": "minecraft:ambient.cave", + "tick_delay": 60000, + "block_search_extent": 8, + "offset": 2.0 + }, + "particle": { + "probability": 0.004, + "options": { + "type": "minecraft:spore_blossom_air" + } + } + }, + "spawn_costs": {}, + "carvers": { + "air": [], + "liquid": [] + }, + "features": [ + [], + [ + "antarchy:rolly_caves_bile_pool" + ], + [ + "antarchy:rolly_caves_giant_cavern" + ], + [], + [], + [], + [], + [], + [], + [ + "minecraft:lush_caves_vegetation", + "minecraft:lush_caves_ceiling_vegetation", + "minecraft:cave_vines", + "antarchy:rolly_caves_amber_moss_patch", + "antarchy:cavaryn_wall_amber_moss", + "antarchy:termite_nest", + "minecraft:glow_lichen", + "minecraft:patch_tall_grass_2", + "minecraft:lush_caves_clay", + "minecraft:rooted_azalea_tree", + "minecraft:spore_blossom" + ], + [] + ], + "creature_spawn_probability": 0.08, + "spawners": { + "monster": [], + "creature": [ + { + "type": "antarchy:rolly_polly", + "weight": 20, + "minCount": 1, + "maxCount": 2 + } + ], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/amber_moss_patch_bonemeal.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/amber_moss_patch_bonemeal.json new file mode 100644 index 00000000..0ba3323d --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/amber_moss_patch_bonemeal.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "depth": 1, + "extra_bottom_block_chance": 0.0, + "extra_edge_column_chance": 0.75, + "ground_state": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:amber_moss_block" + } + }, + "replaceable": "#antarchy:amber_moss_replaceable", + "surface": "floor", + "vegetation_chance": 0.6, + "vegetation_feature": { + "feature": "antarchy:amber_moss_vegetation", + "placement": [] + }, + "vertical_range": 5, + "xz_radius": { + "type": "minecraft:uniform", + "max_inclusive": 2, + "min_inclusive": 1 + } + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/amber_moss_vegetation.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/amber_moss_vegetation.json new file mode 100644 index 00000000..bf8ac8be --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/amber_moss_vegetation.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "data": { + "Name": "antarchy:amber_moss_carpet", + "Properties": { + "bottom": "true", + "east": "none", + "north": "none", + "south": "none", + "west": "none" + } + }, + "weight": 8 + }, + { + "data": { + "Name": "antarchy:glowcap_mushroom" + }, + "weight": 1 + } + ] + } + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/broodstone_titanium_ore.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/broodstone_titanium_ore.json new file mode 100644 index 00000000..5832f471 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/broodstone_titanium_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 4, + "discard_chance_on_air_exposure": 0.0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:block_match", + "block": "antarchy:broodstone" + }, + "state": { + "Name": "antarchy:broodstone_titanium_ore" + } + } + ] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/broodstone_uranium_ore.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/broodstone_uranium_ore.json new file mode 100644 index 00000000..71eb802c --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/broodstone_uranium_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 4, + "discard_chance_on_air_exposure": 0.0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:block_match", + "block": "antarchy:broodstone" + }, + "state": { + "Name": "antarchy:broodstone_uranium_ore" + } + } + ] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_bile_cysts.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_bile_cysts.json new file mode 100644 index 00000000..1616e268 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_bile_cysts.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:cavaryn_bile_cysts", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_bile_veins.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_bile_veins.json new file mode 100644 index 00000000..6a2a5e5d --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_bile_veins.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:cavaryn_bile_veins", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_chiten_spikes.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_chiten_spikes.json new file mode 100644 index 00000000..cb963a90 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_chiten_spikes.json @@ -0,0 +1,18 @@ +{ + "type": "antarchy:cavaryn_chiten_spikes", + "config": { + "floor_to_ceiling_search_range": 10, + "radius": 4, + "max_column_height": 5, + "height_deviation": 1, + "chance_of_column_at_max_distance_from_center": 0.3, + "max_distance_from_center_affecting_chance_of_column": 4, + "max_distance_from_center_affecting_height_bias": 4, + "max_height_difference": 1, + "large_variant_chance": 0.35, + "large_variant_extra_radius": 3, + "large_variant_extra_height": 4, + "large_variant_extra_height_deviation": 2, + "large_variant_surface_spike_multiplier": 2.5 + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_creepvine.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_creepvine.json new file mode 100644 index 00000000..13d7a210 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_creepvine.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:cavaryn_creepvine", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_terror_egg_patch.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_terror_egg_patch.json new file mode 100644 index 00000000..76039ff0 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_terror_egg_patch.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:cavaryn_terror_egg_patch", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_wall_amber_moss.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_wall_amber_moss.json new file mode 100644 index 00000000..f06cc5d9 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/cavaryn_wall_amber_moss.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:cavaryn_wall_amber_moss", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json new file mode 100644 index 00000000..f060e58a --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/glowcap_caves_floor_patch.json @@ -0,0 +1,65 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "surface": "floor", + "depth": 1, + "vertical_range": 5, + "extra_bottom_block_chance": 0.0, + "extra_edge_column_chance": 0.55, + "vegetation_chance": 0.85, + "xz_radius": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 7 + }, + "replaceable": "#antarchy:amber_moss_replaceable", + "ground_state": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 3, + "data": { + "Name": "antarchy:amber_moss_block" + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:mycelium" + } + } + ] + }, + "vegetation_feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 21, + "data": { + "Name": "antarchy:amber_moss_carpet" + } + }, + { + "weight": 11, + "data": { + "Name": "minecraft:short_grass" + } + }, + { + "weight": 2, + "data": { + "Name": "antarchy:glowcap_mushroom" + } + } + ] + } + } + }, + "placement": [] + } + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/hanging_creeproots.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/hanging_creeproots.json new file mode 100644 index 00000000..9acb5ad3 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/hanging_creeproots.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:hanging_creeproots", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/huge_glowcap_mushroom.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/huge_glowcap_mushroom.json new file mode 100644 index 00000000..e2ad8f3f --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/huge_glowcap_mushroom.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:huge_glowcap_mushroom", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/huge_glowcap_mushroom_worldgen.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/huge_glowcap_mushroom_worldgen.json new file mode 100644 index 00000000..0ed99905 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/huge_glowcap_mushroom_worldgen.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:huge_glowcap_mushroom_worldgen", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/jumpy_bug_egg_ceiling.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/jumpy_bug_egg_ceiling.json new file mode 100644 index 00000000..f63327da --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/jumpy_bug_egg_ceiling.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:jumpy_bug_egg_ceiling", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/molting_vines.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/molting_vines.json new file mode 100644 index 00000000..2099fa52 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/molting_vines.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:molting_vines", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_amber_moss_patch.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_amber_moss_patch.json new file mode 100644 index 00000000..44b8e521 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_amber_moss_patch.json @@ -0,0 +1,71 @@ +{ + "type": "minecraft:vegetation_patch", + "config": { + "surface": "floor", + "depth": 1, + "vertical_range": 5, + "extra_bottom_block_chance": 0.0, + "extra_edge_column_chance": 0.3, + "vegetation_chance": 0.7, + "xz_radius": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 7 + }, + "replaceable": "#minecraft:moss_replaceable", + "ground_state": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 3, + "data": { + "Name": "antarchy:amber_moss_block" + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:moss_block" + } + } + ] + }, + "vegetation_feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 4, + "data": { + "Name": "antarchy:amber_moss_carpet" + } + }, + { + "weight": 3, + "data": { + "Name": "minecraft:moss_carpet" + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:short_grass" + } + }, + { + "weight": 2, + "data": { + "Name": "antarchy:glowcap_mushroom" + } + } + ] + } + } + }, + "placement": [] + } + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_giant_cavern.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_giant_cavern.json new file mode 100644 index 00000000..6478f042 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_giant_cavern.json @@ -0,0 +1,4 @@ +{ + "type": "antarchy:rolly_caves_giant_cavern", + "config": {} +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_glowcap_mushroom.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_glowcap_mushroom.json new file mode 100644 index 00000000..4b4a8ac2 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/rolly_caves_glowcap_mushroom.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:glowcap_mushroom" + } + } + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/configured_feature/termite_nest.json b/common/src/main/resources/data/antarchy/worldgen/configured_feature/termite_nest.json new file mode 100644 index 00000000..f777d3bb --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/configured_feature/termite_nest.json @@ -0,0 +1,14 @@ +{ + "type": "antarchy:termite_nest", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "antarchy:termite_nest", + "Properties": { + "facing": "north" + } + } + } + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/density_function/cavaryn_custom.json b/common/src/main/resources/data/antarchy/worldgen/density_function/cavaryn_custom.json new file mode 100644 index 00000000..02ada1e9 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/density_function/cavaryn_custom.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:min", + "argument1": { + "type": "minecraft:cache_2d", + "argument": { + "type": "minecraft:clamp", + "input": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:weird_scaled_sampler", + "input": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_modulator", + "xz_scale": 0.25, + "y_scale": 0.15 + }, + "noise": "antarchy:cavaryn", + "rarity_value_mapper": "type_2" + }, + "argument2": { + "type": "minecraft:mul", + "argument1": 0.123, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:add", + "argument1": -0.86, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.25, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_thickness", + "xz_scale": 1.2, + "y_scale": 1.5 + } + } + } + } + } + }, + "argument2": { + "type": "minecraft:cube", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:abs", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:add", + "argument1": 0, + "argument2": { + "type": "minecraft:mul", + "argument1": 10, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_elevation", + "xz_scale": 0.8, + "y_scale": 0.4 + } + } + }, + "argument2": { + "type": "minecraft:y_clamped_gradient", + "from_y": 252, + "to_y": 8, + "from_value": 10, + "to_value": -10 + } + } + }, + "argument2": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:add", + "argument1": -0.86, + "argument2": { + "type": "minecraft:mul", + "argument1": -0.25, + "argument2": { + "type": "minecraft:noise", + "noise": "minecraft:spaghetti_2d_thickness", + "xz_scale": 1.2, + "y_scale": 1.5 + } + } + } + } + } + } + }, + "max": 2.0, + "min": -2.0 + } + }, + "argument2": { + "type": "minecraft:cache_all_in_cell", + "argument": "antarchy:cavaryn_noise_cave" + } + }, + "argument2": -0.05 +} diff --git a/common/src/main/resources/data/antarchy/worldgen/density_function/cavaryn_noise_cave.json b/common/src/main/resources/data/antarchy/worldgen/density_function/cavaryn_noise_cave.json new file mode 100644 index 00000000..5ce470a6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/density_function/cavaryn_noise_cave.json @@ -0,0 +1,42 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:cache_once", + "argument": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 232, + "to_y": 20, + "from_value": 1.45, + "to_value": 0.12 + }, + "argument2": { + "type": "minecraft:add", + "argument1": { + "type": "minecraft:noise", + "noise": "minecraft:noodle_thickness", + "xz_scale": 1, + "y_scale": 7.5 + }, + "argument2": { + "type": "minecraft:mul", + "argument1": { + "type": "minecraft:weird_scaled_sampler", + "rarity_value_mapper": "type_1", + "noise": "minecraft:patch", + "input": { + "type": "minecraft:interpolated", + "argument": 1 + } + }, + "argument2": { + "type": "minecraft:cube", + "argument": 0.5 + } + } + } + } + }, + "argument2": 0.3 +} diff --git a/common/src/main/resources/data/antarchy/worldgen/noise/cavaryn.json b/common/src/main/resources/data/antarchy/worldgen/noise/cavaryn.json new file mode 100644 index 00000000..76e945fc --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/noise/cavaryn.json @@ -0,0 +1,7 @@ +{ + "firstOctave": -7, + "amplitudes": [ + 0.95, + 0.95 + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/noise_settings/cavaryn.json b/common/src/main/resources/data/antarchy/worldgen/noise_settings/cavaryn.json new file mode 100644 index 00000000..22fbb2c6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/noise_settings/cavaryn.json @@ -0,0 +1,213 @@ +{ + "sea_level": 32, + "disable_mob_generation": false, + "aquifers_enabled": true, + "ore_veins_enabled": false, + "legacy_random_source": false, + "default_block": { + "Name": "antarchy:myrmite" + }, + "default_fluid": { + "Name": "antarchy:bile", + "Properties": { + "level": "0" + } + }, + "noise": { + "min_y": 0, + "height": 208, + "size_horizontal": 1, + "size_vertical": 2 + }, + "noise_router": { + "barrier": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_barrier", + "xz_scale": 1, + "y_scale": 0.5 + }, + "fluid_level_floodedness": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_floodedness", + "xz_scale": 1, + "y_scale": 0.67 + }, + "fluid_level_spread": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_fluid_level_spread", + "xz_scale": 1, + "y_scale": 0.7142857142857143 + }, + "lava": { + "type": "minecraft:noise", + "noise": "minecraft:aquifer_lava", + "xz_scale": 1, + "y_scale": 1 + }, + "temperature": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:temperature", + "xz_scale": 0.25, + "y_scale": 0, + "shift_x": "minecraft:shift_x", + "shift_y": 0, + "shift_z": "minecraft:shift_z" + }, + "vegetation": { + "type": "minecraft:shifted_noise", + "noise": "minecraft:vegetation", + "xz_scale": 0.25, + "y_scale": 0, + "shift_x": "minecraft:shift_x", + "shift_y": 0, + "shift_z": "minecraft:shift_z" + }, + "continents": "minecraft:overworld/continents", + "erosion": "minecraft:overworld/erosion", + "depth": "minecraft:overworld/depth", + "ridges": "minecraft:overworld/ridges", + "initial_density_without_jaggedness": 0, + "final_density": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:max", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": 0, + "to_y": 12, + "from_value": 4, + "to_value": -0.5 + }, + "argument2": { + "type": "minecraft:y_clamped_gradient", + "from_y": 196, + "to_y": 207, + "from_value": -0.5, + "to_value": 4 + } + }, + "argument2": { + "type": "minecraft:min", + "argument1": "minecraft:overworld/caves/noodle", + "argument2": { + "type": "minecraft:range_choice", + "input": "minecraft:y", + "min_inclusive": 4, + "max_exclusive": 204, + "when_in_range": "antarchy:cavaryn_custom", + "when_out_of_range": 2 + } + } + }, + "vein_toggle": 0, + "vein_ridged": 0, + "vein_gap": 0 + }, + "spawn_target": [ + { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": 0, + "offset": 0 + } + ], + "surface_rule": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 5 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "below_top": 5 + }, + "surface_depth_multiplier": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "minecraft:bedrock" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": ["antarchy:brooding_tunnels"] + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "antarchy:broodstone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:not", + "invert": { + "type": "minecraft:y_above", + "add_stone_depth": false, + "anchor": { + "absolute": 40 + }, + "surface_depth_multiplier": 0 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "antarchy:myrmite" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "antarchy:myrmite" + } + } + ] + } +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/brooding_tunnels_creepvine.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/brooding_tunnels_creepvine.json new file mode 100644 index 00000000..61470bd2 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/brooding_tunnels_creepvine.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_creepvine", + "placement": [ + { + "type": "minecraft:count", + "count": 22 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/brooding_tunnels_hanging_creeproots.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/brooding_tunnels_hanging_creeproots.json new file mode 100644 index 00000000..ac28008a --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/brooding_tunnels_hanging_creeproots.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:hanging_creeproots", + "placement": [ + { + "type": "minecraft:count", + "count": 18 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/broodstone_titanium_ore.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/broodstone_titanium_ore.json new file mode 100644 index 00000000..826fa935 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/broodstone_titanium_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:broodstone_titanium_ore", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 24 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 5 + }, + "max_inclusive": { + "absolute": 190 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/broodstone_uranium_ore.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/broodstone_uranium_ore.json new file mode 100644 index 00000000..02bf55f7 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/broodstone_uranium_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:broodstone_uranium_ore", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 5 + }, + "max_inclusive": { + "absolute": 190 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_amber_moss_patch.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_amber_moss_patch.json new file mode 100644 index 00000000..702f99a5 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_amber_moss_patch.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:amber_moss_patch_bonemeal", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_bile_cysts.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_bile_cysts.json new file mode 100644 index 00000000..ff189ab4 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_bile_cysts.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_bile_cysts", + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_bile_veins.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_bile_veins.json new file mode 100644 index 00000000..b18f9af9 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_bile_veins.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_bile_veins", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_chiten_spikes.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_chiten_spikes.json new file mode 100644 index 00000000..f4e08187 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_chiten_spikes.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_chiten_spikes", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_creepvine.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_creepvine.json new file mode 100644 index 00000000..f81d4998 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_creepvine.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_creepvine", + "placement": [ + { + "type": "minecraft:count", + "count": 18 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_hanging_creeproots.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_hanging_creeproots.json new file mode 100644 index 00000000..ce6f564e --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_hanging_creeproots.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:hanging_creeproots", + "placement": [ + { + "type": "minecraft:count", + "count": 14 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_terror_egg_patch.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_terror_egg_patch.json new file mode 100644 index 00000000..01c6693b --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_terror_egg_patch.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_terror_egg_patch", + "placement": [ + { + "type": "minecraft:count", + "count": 1 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_wall_amber_moss.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_wall_amber_moss.json new file mode 100644 index 00000000..d7c131c3 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/cavaryn_wall_amber_moss.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_wall_amber_moss", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_floor_patch.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_floor_patch.json new file mode 100644 index 00000000..f890a975 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_floor_patch.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:glowcap_caves_floor_patch", + "placement": [ + { + "type": "minecraft:count", + "count": 40 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_huge_glowcap_mushroom.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_huge_glowcap_mushroom.json new file mode 100644 index 00000000..0a43f32a --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_huge_glowcap_mushroom.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:huge_glowcap_mushroom_worldgen", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 18 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_molting_vines.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_molting_vines.json new file mode 100644 index 00000000..38a7e5c4 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 10, + "max_inclusive": 16 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_wall_amber_moss.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_wall_amber_moss.json new file mode 100644 index 00000000..a3a0f97b --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/glowcap_caves_wall_amber_moss.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:cavaryn_wall_amber_moss", + "placement": [ + { + "type": "minecraft:count", + "count": 18 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 12 + }, + "max_inclusive": { + "below_top": 12 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json new file mode 100644 index 00000000..3d59c6b4 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/jumpy_bug_egg_ceiling.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:jumpy_bug_egg_ceiling", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 6 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 5 + }, + "max_inclusive": { + "absolute": 190 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/molting_vines.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/molting_vines.json new file mode 100644 index 00000000..b93a4460 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/molting_vines.json @@ -0,0 +1,31 @@ +{ + "feature": "antarchy:molting_vines", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "min_inclusive": 4, + "max_inclusive": 8 + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_amber_moss_patch.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_amber_moss_patch.json new file mode 100644 index 00000000..b4347be6 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_amber_moss_patch.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:rolly_caves_amber_moss_patch", + "placement": [ + { + "type": "minecraft:count", + "count": 40 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 2 + }, + "max_inclusive": { + "absolute": 200 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_giant_cavern.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_giant_cavern.json new file mode 100644 index 00000000..5a87fb83 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_giant_cavern.json @@ -0,0 +1,27 @@ +{ + "feature": "antarchy:rolly_caves_giant_cavern", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 40 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 30 + }, + "max_inclusive": { + "absolute": 150 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_glowcap_mushroom.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_glowcap_mushroom.json new file mode 100644 index 00000000..7cb1f6e8 --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/rolly_caves_glowcap_mushroom.json @@ -0,0 +1,44 @@ +{ + "feature": "antarchy:rolly_caves_glowcap_mushroom", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "absolute": 256 + } + } + }, + { + "type": "minecraft:environment_scan", + "allowed_search_condition": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "direction_of_search": "down", + "max_steps": 12, + "target_condition": { + "type": "minecraft:solid" + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": 0, + "y_spread": 1 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/antarchy/worldgen/placed_feature/termite_nest.json b/common/src/main/resources/data/antarchy/worldgen/placed_feature/termite_nest.json new file mode 100644 index 00000000..70a93fad --- /dev/null +++ b/common/src/main/resources/data/antarchy/worldgen/placed_feature/termite_nest.json @@ -0,0 +1,19 @@ +{ + "feature": "antarchy:termite_nest", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 88 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:heightmap", + "heightmap": "WORLD_SURFACE_WG" + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/common/src/main/resources/data/c/tags/item/swords.json b/common/src/main/resources/data/c/tags/item/swords.json index f3851fd9..8822f47f 100644 --- a/common/src/main/resources/data/c/tags/item/swords.json +++ b/common/src/main/resources/data/c/tags/item/swords.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "antarchy:attitude_adjuster", "antarchy:big_bertha", "antarchy:ultimate_sword", "antarchy:nightmare_sword", diff --git a/common/src/main/resources/data/minecraft/tags/block/climbable.json b/common/src/main/resources/data/minecraft/tags/block/climbable.json index 74dab668..6f6679d5 100644 --- a/common/src/main/resources/data/minecraft/tags/block/climbable.json +++ b/common/src/main/resources/data/minecraft/tags/block/climbable.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ - "minecraft:vine" + "minecraft:vine", + "antarchy:creepvine", + "antarchy:molting_vines" ] -} +} \ No newline at end of file diff --git a/common/src/main/resources/data/minecraft/tags/block/dirt.json b/common/src/main/resources/data/minecraft/tags/block/dirt.json index 071a0bbc..3a6c14b4 100644 --- a/common/src/main/resources/data/minecraft/tags/block/dirt.json +++ b/common/src/main/resources/data/minecraft/tags/block/dirt.json @@ -4,6 +4,7 @@ "antarchy:infested_rooted_dirt", "antarchy:infested_coarse_dirt", "antarchy:umbral_moss_block", - "antarchy:blush_moss_block" + "antarchy:blush_moss_block", + "antarchy:amber_moss_block" ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/mineable/hoe.json b/common/src/main/resources/data/minecraft/tags/block/mineable/hoe.json index ece963cc..a12f646b 100644 --- a/common/src/main/resources/data/minecraft/tags/block/mineable/hoe.json +++ b/common/src/main/resources/data/minecraft/tags/block/mineable/hoe.json @@ -8,6 +8,9 @@ "antarchy:umbral_moss_block", "antarchy:umbral_moss_carpet", "antarchy:blush_moss_block", - "antarchy:blush_moss_carpet" + "antarchy:blush_moss_carpet", + "antarchy:amber_moss_block", + "antarchy:amber_moss_carpet", + "antarchy:glowcap_mushroom_block" ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json index 72954032..2a7b1279 100644 --- a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -6,6 +6,7 @@ "antarchy:titanium_ore", "antarchy:deepslate_titanium_ore", "antarchy:uranium_block", + "antarchy:raw_uranium_block", "antarchy:cut_uranium", "antarchy:cut_uranium_slab", "antarchy:cut_uranium_stairs", @@ -15,6 +16,7 @@ "antarchy:uranium_bars", "antarchy:uranium_bulb", "antarchy:titanium_block", + "antarchy:raw_titanium_block", "antarchy:cut_titanium", "antarchy:cut_titanium_slab", "antarchy:cut_titanium_stairs", @@ -22,8 +24,8 @@ "antarchy:titanium_door", "antarchy:titanium_trapdoor", "antarchy:titanium_bars", - "antarchy:titanium_bulb", - "antarchy:nyxite", + "antarchy:titanium_bulb", + "antarchy:nyxite", "antarchy:polished_nyxite", "antarchy:chiseled_nyxite", "antarchy:nyxite_bricks", @@ -77,6 +79,25 @@ "antarchy:dead_star_coral", "antarchy:dead_star_coral_fan", "antarchy:dead_star_coral_wall_fan", - "antarchy:dead_star_coral_block" + "antarchy:dead_star_coral_block", + "antarchy:myrmite", + "antarchy:broodstone", + "antarchy:polished_broodstone", + "antarchy:chiseled_broodstone", + "antarchy:broodstone_bricks", + "antarchy:broodstone_stairs", + "antarchy:broodstone_slab", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_stairs", + "antarchy:polished_broodstone_slab", + "antarchy:polished_broodstone_wall", + "antarchy:broodstone_brick_stairs", + "antarchy:broodstone_brick_slab", + "antarchy:broodstone_brick_wall", + "antarchy:broodstone_uranium_ore", + "antarchy:broodstone_titanium_ore", + "antarchy:bile_vein", + "antarchy:chiten_block", + "antarchy:chiten_spike" ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/moss_replaceable.json b/common/src/main/resources/data/minecraft/tags/block/moss_replaceable.json new file mode 100644 index 00000000..e273cf02 --- /dev/null +++ b/common/src/main/resources/data/minecraft/tags/block/moss_replaceable.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "antarchy:myrmite", + "antarchy:broodstone" + ] +} diff --git a/common/src/main/resources/data/minecraft/tags/block/mushroom_grow_block.json b/common/src/main/resources/data/minecraft/tags/block/mushroom_grow_block.json new file mode 100644 index 00000000..c52641fc --- /dev/null +++ b/common/src/main/resources/data/minecraft/tags/block/mushroom_grow_block.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:mycelium", + "antarchy:amber_moss_block" + ] +} diff --git a/common/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json b/common/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json index 5d8944bc..4d243781 100644 --- a/common/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json +++ b/common/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json @@ -3,8 +3,10 @@ "values": [ "antarchy:titanium_ore", "antarchy:deepslate_titanium_ore", + "antarchy:broodstone_titanium_ore", "antarchy:uranium_ore", "antarchy:deepslate_uranium_ore", + "antarchy:broodstone_uranium_ore", "antarchy:titanium_block", "antarchy:raw_titanium_block", "antarchy:cut_titanium", diff --git a/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json index 6f19d46e..33cea4cb 100644 --- a/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json +++ b/common/src/main/resources/data/minecraft/tags/block/needs_stone_tool.json @@ -18,6 +18,8 @@ "antarchy:polished_shellstone_wall", "antarchy:shellstone_brick_stairs", "antarchy:shellstone_brick_slab", - "antarchy:shellstone_brick_wall" + "antarchy:shellstone_brick_wall", + "antarchy:chiten_block", + "antarchy:bile_vein" ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/slabs.json b/common/src/main/resources/data/minecraft/tags/block/slabs.json index 1cb3422a..9a281d20 100644 --- a/common/src/main/resources/data/minecraft/tags/block/slabs.json +++ b/common/src/main/resources/data/minecraft/tags/block/slabs.json @@ -12,6 +12,9 @@ "antarchy:smooth_dream_sandstone_slab", "antarchy:cut_dream_sandstone_slab", "antarchy:cut_uranium_slab", - "antarchy:cut_titanium_slab" + "antarchy:cut_titanium_slab", + "antarchy:broodstone_slab", + "antarchy:polished_broodstone_slab", + "antarchy:broodstone_brick_slab" ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/stairs.json b/common/src/main/resources/data/minecraft/tags/block/stairs.json index 431e9e7c..b8de10dc 100644 --- a/common/src/main/resources/data/minecraft/tags/block/stairs.json +++ b/common/src/main/resources/data/minecraft/tags/block/stairs.json @@ -11,6 +11,9 @@ "antarchy:dream_sandstone_stairs", "antarchy:smooth_dream_sandstone_stairs", "antarchy:cut_titanium_stairs", - "antarchy:cut_uranium_stairs" + "antarchy:cut_uranium_stairs", + "antarchy:broodstone_stairs", + "antarchy:polished_broodstone_stairs", + "antarchy:broodstone_brick_stairs" ] } diff --git a/common/src/main/resources/data/minecraft/tags/block/vines.json b/common/src/main/resources/data/minecraft/tags/block/vines.json index 74dab668..6f6679d5 100644 --- a/common/src/main/resources/data/minecraft/tags/block/vines.json +++ b/common/src/main/resources/data/minecraft/tags/block/vines.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ - "minecraft:vine" + "minecraft:vine", + "antarchy:creepvine", + "antarchy:molting_vines" ] -} +} \ No newline at end of file diff --git a/common/src/main/resources/data/minecraft/tags/block/walls.json b/common/src/main/resources/data/minecraft/tags/block/walls.json index 6da83bf9..3d65f231 100644 --- a/common/src/main/resources/data/minecraft/tags/block/walls.json +++ b/common/src/main/resources/data/minecraft/tags/block/walls.json @@ -8,6 +8,9 @@ "antarchy:shellstone_wall", "antarchy:polished_shellstone_wall", "antarchy:shellstone_brick_wall", - "antarchy:mossy_shellstone_brick_wall" + "antarchy:mossy_shellstone_brick_wall", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_wall", + "antarchy:broodstone_brick_wall" ] } diff --git a/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json b/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json index 7af39a02..445a31c7 100644 --- a/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json +++ b/common/src/main/resources/data/minecraft/tags/entity_type/arthropod.json @@ -9,6 +9,13 @@ "antarchy:bed_bug", "antarchy:mantis", "antarchy:alpha_mantis", + "antarchy:jumpy_bug", + "antarchy:spit_bug", + "antarchy:stink_bug", + "antarchy:hercules_beetle", + "antarchy:creeping_horror", + "antarchy:lurking_terror", + "antarchy:rolly_polly", "antarchy:scorpion", "antarchy:emperor_scorpion" ] diff --git a/common/src/main/resources/data/minecraft/tags/item/slabs.json b/common/src/main/resources/data/minecraft/tags/item/slabs.json index 1cb3422a..9a281d20 100644 --- a/common/src/main/resources/data/minecraft/tags/item/slabs.json +++ b/common/src/main/resources/data/minecraft/tags/item/slabs.json @@ -12,6 +12,9 @@ "antarchy:smooth_dream_sandstone_slab", "antarchy:cut_dream_sandstone_slab", "antarchy:cut_uranium_slab", - "antarchy:cut_titanium_slab" + "antarchy:cut_titanium_slab", + "antarchy:broodstone_slab", + "antarchy:polished_broodstone_slab", + "antarchy:broodstone_brick_slab" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/stairs.json b/common/src/main/resources/data/minecraft/tags/item/stairs.json index 93574606..df140f7a 100644 --- a/common/src/main/resources/data/minecraft/tags/item/stairs.json +++ b/common/src/main/resources/data/minecraft/tags/item/stairs.json @@ -11,6 +11,9 @@ "antarchy:dream_sandstone_stairs", "antarchy:smooth_dream_sandstone_stairs", "antarchy:cut_uranium_stairs", - "antarchy:cut_titanium_stairs" + "antarchy:cut_titanium_stairs", + "antarchy:broodstone_stairs", + "antarchy:polished_broodstone_stairs", + "antarchy:broodstone_brick_stairs" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/vines.json b/common/src/main/resources/data/minecraft/tags/item/vines.json index 74dab668..f48d67f2 100644 --- a/common/src/main/resources/data/minecraft/tags/item/vines.json +++ b/common/src/main/resources/data/minecraft/tags/item/vines.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ - "minecraft:vine" + "minecraft:vine", + "antarchy:creepvine", + "antarchy:molting_vines" ] } diff --git a/common/src/main/resources/data/minecraft/tags/item/walls.json b/common/src/main/resources/data/minecraft/tags/item/walls.json index 2e5809bb..25573f07 100644 --- a/common/src/main/resources/data/minecraft/tags/item/walls.json +++ b/common/src/main/resources/data/minecraft/tags/item/walls.json @@ -8,6 +8,9 @@ "antarchy:polished_shellstone_wall", "antarchy:shellstone_brick_wall", "antarchy:mossy_shellstone_brick_wall", - "antarchy:dream_sandstone_wall" + "antarchy:dream_sandstone_wall", + "antarchy:broodstone_wall", + "antarchy:polished_broodstone_wall", + "antarchy:broodstone_brick_wall" ] } diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java index 61215bdc..8ffcfb09 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyConfigModuleFabric.java @@ -195,6 +195,7 @@ public final class AntarchyConfigModuleFabric { || name.startsWith("ultimate") || name.startsWith("battleAxe") || name.startsWith("bigBertha") + || name.startsWith("attitudeAdjuster") || name.startsWith("scorpionWhip") || name.startsWith("bloodCrystal") || name.startsWith("nightmareHelmet") diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java index c8a9d2f7..b8caac03 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabric.java @@ -87,6 +87,10 @@ public final class AntarchyFabric implements ModInitializer { Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "rainbow_ant_nest") ); + private static final ResourceKey TERMITE_NEST = ResourceKey.create( + Registries.PLACED_FEATURE, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "termite_nest") + ); private static final ResourceKey RED_ANT_NEST = ResourceKey.create( Registries.PLACED_FEATURE, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "red_ant_nest") @@ -202,6 +206,11 @@ public final class AntarchyFabric implements ModInitializer { GenerationStep.Decoration.VEGETAL_DECORATION, RAINBOW_ANT_NEST ); + BiomeModifications.addFeature( + BiomeSelectors.tag(OVERWORLD_ANT_NEST_SPAWN_BIOMES), + GenerationStep.Decoration.VEGETAL_DECORATION, + TERMITE_NEST + ); BiomeModifications.addFeature( BiomeSelectors.tag(RED_ANT_NEST_SPAWN_BIOMES), GenerationStep.Decoration.VEGETAL_DECORATION, 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 472e9db9..83925437 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricContent.java @@ -13,6 +13,7 @@ import com.craisinlord.antarchy.content.entity.lucid.LucidEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity; import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity; import com.craisinlord.antarchy.content.item.ScorpionWhipTetherSync; +import com.craisinlord.antarchy.content.network.ImpactShakeSync; import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync; import com.craisinlord.antarchy.content.portal.PermanentPortalType; import net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistryBuilder; @@ -117,8 +118,8 @@ public final class AntarchyFabricContent { () -> AntarchyFabricBlocks.ELYTHIA_PORTAL.get(), () -> AntarchyFabricBlocks.NYXITE.get(), () -> AntarchyFabricBlocks.THORAXIS_PORTAL.get(), - () -> AntarchyFabricBlocks.NYXITE.get(), - () -> AntarchyFabricBlocks.THORAXIS_PORTAL.get() + () -> AntarchyFabricBlocks.MYRMITE.get(), + () -> AntarchyFabricBlocks.CAVARYN_PORTAL.get() ); AntarchySoundEvents.bind( @@ -245,14 +246,30 @@ public final class AntarchyFabricContent { AntarchyFabricSounds.TORETERROR_JUMP_UP, AntarchyFabricSounds.TORETERROR_JUMP_LAND, AntarchyFabricSounds.STINKY_FLY_SOUND, - AntarchyFabricSounds.ANT_IDLE, - AntarchyFabricSounds.ANT_HURT, - AntarchyFabricSounds.ANT_BITE, - AntarchyFabricSounds.ANT_IDLE, - AntarchyFabricSounds.ANT_HURT, - AntarchyFabricSounds.ANT_BITE, - AntarchyFabricSounds.ANT_IDLE, - AntarchyFabricSounds.DUCT_TAPE_USE + AntarchyFabricSounds.STINK_BUG_FART, + AntarchyFabricSounds.STINK_BUG_IDLE, + AntarchyFabricSounds.ROLLY_POLLY_IDLE, + AntarchyFabricSounds.CREEPING_HORROR_GROWL, + AntarchyFabricSounds.CREEPING_HORROR_HURT, + AntarchyFabricSounds.CREEPING_HORROR_BITE, + AntarchyFabricSounds.LURKING_TERROR_SNARL, + AntarchyFabricSounds.LURKING_TERROR_HURT, + AntarchyFabricSounds.LURKING_TERROR_BITE, + AntarchyFabricSounds.LURKING_TERROR_FLY_LOOP, + AntarchyFabricSounds.DUCT_TAPE_USE, + AntarchyFabricSounds.HERCULES_BEETLE_IDLE, + AntarchyFabricSounds.HERCULES_BEETLE_HURT, + AntarchyFabricSounds.HERCULES_BEETLE_ATTACK, + AntarchyFabricSounds.HERCULES_BEETLE_CRY, + AntarchyFabricSounds.HERCULES_BEETLE_CHARGE_START, + AntarchyFabricSounds.HERCULES_BEETLE_KNOCKED_DOWN, + AntarchyFabricSounds.JUMPY_BUG_IDLE, + AntarchyFabricSounds.SPIT_BUG_IDLE, + AntarchyFabricSounds.JUMPY_BUG_HURT, + AntarchyFabricSounds.JUMPY_BUG_JUMP, + AntarchyFabricSounds.SPIT_BUG_HURT, + AntarchyFabricSounds.SPIT_BUG_SPIT, + AntarchyFabricSounds.BRUTALFLY_SPIT ); AntarchyObjects.setOctopusBomb(AntarchyFabricEntities.OCTOPUS_BOMB); @@ -311,9 +328,9 @@ public final class AntarchyFabricContent { AntarchyFabricEntities.HUSH_PROJECTILE, AntarchyFabricEntities.TORETERROR, AntarchyFabricEntities.WATER_BOMB, - (java.util.function.Supplier) AntarchyFabricEntities.BOMBER, - (java.util.function.Supplier) AntarchyFabricEntities.BOMBER, - (java.util.function.Supplier) AntarchyFabricEntities.BED_BUG, + AntarchyFabricEntities.CREEPING_HORROR, + AntarchyFabricEntities.LURKING_TERROR, + AntarchyFabricEntities.STINK_BUG, AntarchyFabricEntities.CHEEP, AntarchyFabricEntities.DORRIE, () -> AntarchyFabricBlocks.DUPLICATOR_LOG.get(), @@ -344,8 +361,8 @@ public final class AntarchyFabricContent { () -> AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get(), () -> AntarchyFabricBlocks.PALE_NYXITE.get(), () -> AntarchyFabricBlocks.NYXITE_SPIKE.get(), - () -> AntarchyFabricBlocks.NYXITE.get(), - () -> AntarchyFabricBlocks.NYXITE_SPIKE.get(), + () -> AntarchyFabricBlocks.CHITEN_BLOCK.get(), + () -> AntarchyFabricBlocks.CHITEN_SPIKE.get(), () -> AntarchyFabricBlocks.POTENT_NYXITE.get(), () -> AntarchyFabricBlocks.ANTIMETAL.get(), () -> AntarchyFabricBlocks.POLISHED_ANTIMETAL.get(), @@ -373,8 +390,8 @@ public final class AntarchyFabricContent { () -> AntarchyFabricBlocks.ORANGE_MILKWEED.get(), () -> AntarchyFabricBlocks.PINK_MILKWEED.get(), () -> AntarchyFabricBlocks.BED_BUG_EGG.get(), - () -> AntarchyFabricBlocks.BED_BUG_EGG.get(), - () -> AntarchyFabricBlocks.BED_BUG_EGG.get(), + () -> AntarchyFabricBlocks.CREEPING_HORROR_EGG.get(), + () -> AntarchyFabricBlocks.LURKING_TERROR_EGG.get(), () -> AntarchyFabricBlocks.WASP_NEST.get(), () -> AntarchyFabricBlocks.HUSHWEED.get(), () -> AntarchyFabricBlocks.OURANWOOD_SQUIRREL_NEST.get(), @@ -402,6 +419,7 @@ public final class AntarchyFabricContent { ScorpionWhipTetherSync.setSink(AntarchyFabricNetworking::syncScorpionWhipTether); HerculesBeetleImpactShakeSync.setSink((player, ticks) -> net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.send(player, new com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload(ticks))); + ImpactShakeSync.setSink((player, payload) -> net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.send(player, payload)); BloodCrystalKatanaItem.setTrailCallback(AntarchyFabricNetworking::syncKatanaTrail); com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyFabricNetworking::syncGravityEntity); AntarchyFabricEvents.register(); 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 9af38c96..4d91ebcd 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/AntarchyFabricEvents.java @@ -6,6 +6,8 @@ import com.craisinlord.antarchy.content.entity.ReverieEntity; import com.craisinlord.antarchy.config.AntarchySettings; import com.craisinlord.antarchy.content.AntarchyObjects; import com.craisinlord.antarchy.content.block.DuctTapeBlock; +import com.craisinlord.antarchy.content.item.AttitudeAdjusterItem; +import com.craisinlord.antarchy.content.item.AttitudeAdjusterSlamManager; import com.craisinlord.antarchy.content.block.PotentNyxiteBlock; import com.craisinlord.antarchy.content.entity.MissileSquidEntity; import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity; @@ -19,6 +21,7 @@ import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; +import net.fabricmc.fabric.api.event.player.AttackEntityCallback; import net.minecraft.server.level.ServerPlayer; import com.craisinlord.antarchy.content.SquidzookaDispenseBehavior; import com.craisinlord.antarchy.content.RpoLauncherDispenseBehavior; @@ -33,6 +36,7 @@ import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.player.Player; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.InteractionResult; import java.util.HashSet; import java.util.Set; @@ -95,6 +99,13 @@ public final class AntarchyFabricEvents { } }); + AttackEntityCallback.EVENT.register((player, world, hand, entity, hitResult) -> { + if (!world.isClientSide && player.getItemInHand(hand).getItem() instanceof AttitudeAdjusterItem && player.getAttackStrengthScale(0.5F) >= 0.95F) { + AttitudeAdjusterSlamManager.markSpecialHit(player); + } + return InteractionResult.PASS; + }); + ServerTickEvents.END_SERVER_TICK.register(server -> { Set activeThisTick = new HashSet<>(); for (ServerLevel level : server.getAllLevels()) { @@ -102,6 +113,7 @@ public final class AntarchyFabricEvents { tickDuctTapePlayers(level); tickIchorPlayers(level); tickBloodglassRecharge(level); + AttitudeAdjusterSlamManager.tick(level); MinersDreamExcavationManager.tick(level); } invertedPlayers.retainAll(activeThisTick); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java index e5fb5345..94b1f241 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/client/AntarchyFabricClientBootstrap.java @@ -5,6 +5,7 @@ import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems; import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc; import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.client.CameraShakeClientState; import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState; import com.craisinlord.antarchy.content.client.renderer.*; import com.craisinlord.antarchy.content.client.particle.*; @@ -134,6 +135,15 @@ public final class AntarchyFabricClientBootstrap { EntityRendererRegistry.register(AntarchyFabricEntities.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.client.renderer.OuranwoodDeerRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.GLIMMER.get(), com.craisinlord.antarchy.content.client.renderer.glimmer.GlimmerRenderer::new); EntityRendererRegistry.register(AntarchyFabricEntities.ELKA.get(), com.craisinlord.antarchy.content.client.renderer.ElkaRenderer::new); +// EntityRendererRegistry.register(AntarchyFabricEntities.ROLLY_POLLY.get(), RollyPollyRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.TERMITE.get(), TermiteRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.CREEPING_HORROR.get(), CreepingHorrorRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.LURKING_TERROR.get(), LurkingTerrorRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.HERCULES_BEETLE.get(), HerculesBeetleRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.JUMPY_BUG.get(), JumpyBugRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.SPIT_BUG.get(), SpitBugRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.SPIT_BUG_PROJECTILE.get(), SpitBugProjectileRenderer::new); + EntityRendererRegistry.register(AntarchyFabricEntities.STINK_BUG.get(), StinkBugRenderer::new); EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.boatLayer(), BoatModel::createBodyModel); EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.chestBoatLayer(), ChestBoatModel::createBodyModel); @@ -279,11 +289,11 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_SAPLING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout()); - // BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE.get(), RenderType.cutout()); - // BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE_PLANT.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ORANGE_MILKWEED.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PINK_MILKWEED.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.AMBER_LICHEN.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CREEPVINE.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CAMELLIA.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIDER_LILY.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_SPIDER_LILY.get(), RenderType.cutout()); @@ -292,6 +302,7 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GIANT_LILY_PAD.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.HUSHWEED.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_GLOWCAP_MUSHROOM.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CORNEA_STALK.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CORN_CROP.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.WILD_CORN.get(), RenderType.cutout()); @@ -299,6 +310,7 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ANTIMETAL_SCAFFOLDING.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NYXITE_SPIKE.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CHITEN_SPIKE.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_FAN.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout()); @@ -327,6 +339,10 @@ public final class AntarchyFabricClientBootstrap { BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.URANIUM_BARS.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TITANIUM_BARS.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CLOUD_BLOCK.get(), RenderType.translucent()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.JUMPY_BUG_EGG.get(), RenderType.translucent()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.HANGING_CREEPROOTS.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.MOLTING_VINES.get(), RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GLOWCAP_MUSHROOM.get(), RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putFluids( RenderType.translucent(), AntarchyFabricMisc.BILE.get(), @@ -418,6 +434,7 @@ public final class AntarchyFabricClientBootstrap { private static void registerClientCallbacks() { ClientTickEvents.END_CLIENT_TICK.register(client -> { + CameraShakeClientState.tick(); HerculesBeetleImpactShakeClientState.tick(); if (client.player != null) { ParalyzedClientHandler.clampPlayerInput(client.player); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java index c88148ee..97354e1b 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricClientNetworking.java @@ -56,5 +56,7 @@ public final class AntarchyFabricClientNetworking { ))); ClientPlayNetworking.registerGlobalReceiver(HerculesBeetleImpactShakePayload.TYPE, (payload, context) -> context.client().execute(() -> AntarchyFabricNetworking.triggerHerculesBeetleImpactShake(payload.durationTicks()))); + ClientPlayNetworking.registerGlobalReceiver(ImpactShakePayload.TYPE, (payload, context) -> + context.client().execute(() -> AntarchyFabricNetworking.triggerImpactShake(payload))); } } diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java index a560c639..ed500544 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/network/AntarchyFabricNetworking.java @@ -2,6 +2,7 @@ package com.craisinlord.antarchy.fabric.network; import com.craisinlord.antarchy.fabric.registry.AntarchyFabricEntities; import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity; +import com.craisinlord.antarchy.content.client.CameraShakeClientState; import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState; import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner; import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework; @@ -74,6 +75,7 @@ public final class AntarchyFabricNetworking { PayloadTypeRegistry.playS2C().register(BrutalflyElytraAnimationPayload.TYPE, BrutalflyElytraAnimationPayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(ThoraxisWeatherPayload.TYPE, ThoraxisWeatherPayload.STREAM_CODEC); PayloadTypeRegistry.playS2C().register(HerculesBeetleImpactShakePayload.TYPE, HerculesBeetleImpactShakePayload.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(ImpactShakePayload.TYPE, ImpactShakePayload.STREAM_CODEC); PayloadTypeRegistry.playC2S().register(GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC); PayloadTypeRegistry.playC2S().register(GravityGunScrollPayload.TYPE, GravityGunScrollPayload.STREAM_CODEC); @@ -404,4 +406,13 @@ public final class AntarchyFabricNetworking { public static void triggerHerculesBeetleImpactShake(int durationTicks) { HerculesBeetleImpactShakeClientState.trigger(durationTicks); } + + public static void triggerImpactShake(ImpactShakePayload payload) { + CameraShakeClientState.triggerImpact( + new Vec3(payload.x(), payload.y(), payload.z()), + payload.intensity(), + payload.durationTicks(), + payload.radius() + ); + } } diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java index c289196d..b46f01b1 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricBlocks.java @@ -238,7 +238,10 @@ import net.minecraft.world.level.block.GlowLichenBlock; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.LiquidBlock; import net.minecraft.world.level.block.RotatedPillarBlock; +import net.minecraft.world.level.block.SlabBlock; import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.StairBlock; +import net.minecraft.world.level.block.WallBlock; import net.minecraft.world.level.block.VineBlock; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockBehaviour; @@ -366,7 +369,7 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock SEASHELL = BLOCKS.register("seashell", () -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion())); public static final DeferredBlock CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block", - () -> new CritterCageBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS).noOcclusion())); + () -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion())); public static final DeferredBlock OURANWOOD_SIGN = BLOCKS.register("ouranwood_sign", @@ -630,6 +633,10 @@ public final class AntarchyFabricBlocks { () -> new AntDimensionPortalBlock(PermanentPortalType.THORAXIS, portalProperties())); + public static final DeferredBlock CAVARYN_PORTAL = BLOCKS.register("cavaryn_portal", + () -> new AntDimensionPortalBlock(PermanentPortalType.CAVARYN, portalProperties())); + + public static final DeferredBlock PALE_NYXITE = BLOCKS.register("pale_nyxite", () -> new Block(nyxiteProperties())); @@ -638,6 +645,10 @@ public final class AntarchyFabricBlocks { () -> new NyxiteSpikeBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POINTED_DRIPSTONE))); + public static final DeferredBlock CHITEN_SPIKE = BLOCKS.register("chiten_spike", + () -> new ChitenSpikeBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POINTED_DRIPSTONE))); + + public static final DeferredBlock POTENT_NYXITE = BLOCKS.register("potent_nyxite", () -> new PotentNyxiteBlock( AntarchyFabricBlocks::potentNyxiteBlockEntityType, @@ -645,6 +656,74 @@ public final class AntarchyFabricBlocks { )); + public static final DeferredBlock MYRMITE = BLOCKS.register("myrmite", + () -> new Block(nyxiteProperties())); + + + public static final DeferredBlock BROODSTONE = BLOCKS.register("broodstone", + () -> new Block(broodstoneProperties())); + + + public static final DeferredBlock POLISHED_BROODSTONE = BLOCKS.register("polished_broodstone", + () -> new Block(broodstoneProperties())); + + + public static final DeferredBlock CHISELED_BROODSTONE = BLOCKS.register("chiseled_broodstone", + () -> new Block(broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_BRICKS = BLOCKS.register("broodstone_bricks", + () -> new Block(broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_STAIRS = BLOCKS.register("broodstone_stairs", + () -> new StairBlock(BROODSTONE.get().defaultBlockState(), broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_SLAB = BLOCKS.register("broodstone_slab", + () -> new SlabBlock(broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_WALL = BLOCKS.register("broodstone_wall", + () -> new WallBlock(broodstoneProperties())); + + + public static final DeferredBlock POLISHED_BROODSTONE_STAIRS = BLOCKS.register("polished_broodstone_stairs", + () -> new StairBlock(POLISHED_BROODSTONE.get().defaultBlockState(), broodstoneProperties())); + + + public static final DeferredBlock POLISHED_BROODSTONE_SLAB = BLOCKS.register("polished_broodstone_slab", + () -> new SlabBlock(broodstoneProperties())); + + + public static final DeferredBlock POLISHED_BROODSTONE_WALL = BLOCKS.register("polished_broodstone_wall", + () -> new WallBlock(broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_BRICK_STAIRS = BLOCKS.register("broodstone_brick_stairs", + () -> new StairBlock(BROODSTONE_BRICKS.get().defaultBlockState(), broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_BRICK_SLAB = BLOCKS.register("broodstone_brick_slab", + () -> new SlabBlock(broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall", + () -> new WallBlock(broodstoneProperties())); + + + public static final DeferredBlock BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore", + () -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8)); + + + public static final DeferredBlock BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore", + () -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8)); + + + public static final DeferredBlock CHITEN_BLOCK = BLOCKS.register("chiten_block", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops())); + + public static final DeferredBlock UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block", () -> new UmbralMossBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK))); @@ -653,6 +732,26 @@ public final class AntarchyFabricBlocks { () -> new UmbralMossCarpetBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).noOcclusion())); + public static final DeferredBlock AMBER_MOSS_BLOCK = BLOCKS.register("amber_moss_block", + () -> new AmberMossBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK))); + + + public static final DeferredBlock AMBER_MOSS_CARPET = BLOCKS.register("amber_moss_carpet", + () -> new UmbralMossCarpetBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).noOcclusion())); + + + public static final DeferredBlock AMBER_LICHEN = BLOCKS.register("amber_lichen", + () -> new GlowLichenBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.GLOW_LICHEN).lightLevel(state -> 4))); + + + public static final DeferredBlock BILE_VEIN = BLOCKS.register("bile_vein", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK).lightLevel(state -> 2))); + + + public static final DeferredBlock CREEPVINE = BLOCKS.register("creepvine", + () -> new VineBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.VINE))); + + public static final DeferredBlock BLUSH_MOSS_BLOCK = BLOCKS.register("blush_moss_block", () -> new BlushMossBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK))); @@ -695,6 +794,18 @@ public final class AntarchyFabricBlocks { .replaceable())); + public static final DeferredBlock CREEPING_HORROR_EGG = BLOCKS.register("creeping_horror_egg", + () -> new CreepingHorrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG))); + + + public static final DeferredBlock JUMPY_BUG_EGG = BLOCKS.register("jumpy_bug_egg", + () -> new JumpyBugEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG))); + + + public static final DeferredBlock LURKING_TERROR_EGG = BLOCKS.register("lurking_terror_egg", + () -> new LurkingTerrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG))); + + public static final DeferredBlock WASP_NEST = BLOCKS.register("wasp_nest", () -> new WaspNestBlock(AntarchyFabricBlocks::waspNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.BEE_NEST))); @@ -711,6 +822,14 @@ public final class AntarchyFabricBlocks { () -> new HushweedBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AZALEA).noCollission().noOcclusion())); + public static final DeferredBlock HANGING_CREEPROOTS = BLOCKS.register("hanging_creeproots", + () -> new HangingCreeprootsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.HANGING_ROOTS))); + + + public static final DeferredBlock MOLTING_VINES = BLOCKS.register("molting_vines", + () -> new MoltingVinesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WEEPING_VINES))); + + public static final DeferredBlock BILE_BLOCK = BLOCKS.register("bile", () -> new BileLiquidBlock((net.minecraft.world.level.material.FlowingFluid) AntarchyFabricMisc.BILE.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.WATER).lightLevel(state -> 5).noLootTable())); @@ -754,6 +873,10 @@ public final class AntarchyFabricBlocks { () -> new AntNestBlock(AntarchyFabricEntities.RAINBOW_ANT, AntarchyFabricBlocks::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable())); + public static final DeferredBlock TERMITE_NEST = BLOCKS.register("termite_nest", + () -> new AntNestBlock(AntarchyFabricEntities.TERMITE, AntarchyFabricBlocks::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable())); + + public static final DeferredBlock URANIUM_ORE = BLOCKS.register("uranium_ore", () -> createOre(Blocks.EMERALD_ORE, 4, 8)); @@ -779,11 +902,11 @@ public final class AntarchyFabricBlocks { public static final DeferredBlock RAW_URANIUM_BLOCK = BLOCKS.register("raw_uranium_block", - () -> createRawStorageBlock(Blocks.RAW_GOLD_BLOCK)); + () -> createRawStorageBlock(Blocks.EMERALD_ORE)); public static final DeferredBlock RAW_TITANIUM_BLOCK = BLOCKS.register("raw_titanium_block", - () -> createRawStorageBlock(Blocks.RAW_IRON_BLOCK)); + () -> createRawStorageBlock(Blocks.DIAMOND_ORE)); public static final DeferredBlock CUT_URANIUM = BLOCKS.register("cut_uranium", @@ -866,6 +989,16 @@ public final class AntarchyFabricBlocks { () -> new CorneaStalkBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SWEET_BERRY_BUSH).randomTicks())); + public static final DeferredBlock GLOWCAP_MUSHROOM = BLOCKS.register("glowcap_mushroom", + () -> new com.craisinlord.antarchy.content.block.GlowcapMushroomBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.RED_MUSHROOM).lightLevel(state -> 12).randomTicks())); + public static final DeferredBlock POTTED_GLOWCAP_MUSHROOM = BLOCKS.register("potted_glowcap_mushroom", + () -> new net.minecraft.world.level.block.FlowerPotBlock(GLOWCAP_MUSHROOM.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION).lightLevel(state -> 12))); + + + public static final DeferredBlock GLOWCAP_MUSHROOM_BLOCK = BLOCKS.register("glowcap_mushroom_block", + () -> new net.minecraft.world.level.block.HugeMushroomBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.RED_MUSHROOM_BLOCK).lightLevel(state -> 13))); + + public static final DeferredBlock CORN_CROP = BLOCKS.register("corn_crop", () -> new CornCropBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WHEAT).randomTicks().noCollission().noOcclusion())); @@ -994,7 +1127,8 @@ public final class AntarchyFabricBlocks { AntNestBlockEntity::new, RED_ANT_NEST.get(), BROWN_ANT_NEST.get(), - RAINBOW_ANT_NEST.get() + RAINBOW_ANT_NEST.get(), + TERMITE_NEST.get() ).build(null)); @@ -1109,6 +1243,10 @@ public final class AntarchyFabricBlocks { return BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK); } + private static BlockBehaviour.Properties broodstoneProperties() { + return BlockBehaviour.Properties.ofFullCopy(Blocks.DEEPSLATE).requiresCorrectToolForDrops(); + } + private static BlockBehaviour.Properties portalProperties() { @@ -1185,9 +1323,7 @@ public final class AntarchyFabricBlocks { private static Block createRawStorageBlock(Block copyFrom) { - return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom) - .strength(3.5F, 6.0F) - .requiresCorrectToolForDrops()); + return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops()); } diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java index 26b62fbe..0a90bac9 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntities.java @@ -274,6 +274,17 @@ public final class AntarchyFabricEntities { () -> buildAntType(RainbowAntEntity::new, MobCategory.CREATURE, "rainbow_ant")); + public static final DeferredHolder, EntityType> TERMITE = ENTITY_TYPES.register("termite", + () -> buildAntType(com.craisinlord.antarchy.content.entity.ant.TermiteEntity::new, MobCategory.CREATURE, "termite")); + + +// public static final DeferredHolder, EntityType> ROLLY_POLLY = ENTITY_TYPES.register("rolly_polly", +// () -> EntityType.Builder.of(RollyPollyEntity::new, MobCategory.CREATURE) +// .sized(0.95F, 0.85F) +// .clientTrackingRange(10) +// .build("rolly_polly")); + + public static final DeferredHolder, EntityType> MOLEWORM = ENTITY_TYPES.register("moleworm", () -> EntityType.Builder.of(MolewormEntity::new, MobCategory.MONSTER) .sized(0.4F, 0.3F) @@ -348,6 +359,13 @@ public final class AntarchyFabricEntities { .build("bed_bug")); + public static final DeferredHolder, EntityType> STINK_BUG = ENTITY_TYPES.register("stink_bug", + () -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.CREATURE) + .sized(0.35F, 0.2F) + .clientTrackingRange(8) + .build("stink_bug")); + + public static final DeferredHolder, EntityType> WASP = ENTITY_TYPES.register("wasp", () -> EntityType.Builder.of(WaspEntity::new, MobCategory.MONSTER) .sized(0.8625F, 1.365F) @@ -362,6 +380,28 @@ public final class AntarchyFabricEntities { .build("bomber")); + public static final DeferredHolder, EntityType> JUMPY_BUG = ENTITY_TYPES.register("jumpy_bug", + () -> EntityType.Builder.of(JumpyBugEntity::new, MobCategory.MONSTER) + .sized(3.0F, 6.0F) + .clientTrackingRange(8) + .build("jumpy_bug")); + + + public static final DeferredHolder, EntityType> SPIT_BUG = ENTITY_TYPES.register("spit_bug", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.SpitBugEntity::new, MobCategory.MONSTER) + .sized(2.5F, 3.0F) + .clientTrackingRange(10) + .build("spit_bug")); + + + public static final DeferredHolder, EntityType> SPIT_BUG_PROJECTILE = ENTITY_TYPES.register("spit_bug_projectile", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.SpitBugProjectileEntity::new, MobCategory.MISC) + .sized(0.5F, 0.5F) + .clientTrackingRange(8) + .updateInterval(1) + .build("spit_bug_projectile")); + + public static final DeferredHolder, EntityType> SHRINK_RAY_PROJECTILE = ENTITY_TYPES.register("shrink_ray_projectile", () -> EntityType.Builder.of(SizeRayProjectileEntity::createShrink, MobCategory.MISC) .sized(0.5F, 0.5F) @@ -597,6 +637,20 @@ public final class AntarchyFabricEntities { + public static final DeferredHolder, EntityType> CREEPING_HORROR = ENTITY_TYPES.register("creeping_horror", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.CreepingHorrorEntity::new, MobCategory.MONSTER) + .sized(1.3F, 1.5F) + .clientTrackingRange(10) + .build("creeping_horror")); + + + public static final DeferredHolder, EntityType> LURKING_TERROR = ENTITY_TYPES.register("lurking_terror", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.LurkingTerrorEntity::new, MobCategory.MONSTER) + .sized(1.3F, 1.5F) + .clientTrackingRange(10) + .build("lurking_terror")); + + public static final DeferredHolder, EntityType> CHEEP = ENTITY_TYPES.register("cheep", () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.CheepEntity::new, MobCategory.WATER_AMBIENT) .sized(1.0F, 1.2F) @@ -612,6 +666,13 @@ public final class AntarchyFabricEntities { .build("dorrie")); + public static final DeferredHolder, EntityType> HERCULES_BEETLE = ENTITY_TYPES.register("hercules_beetle", + () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.HerculesBeetleEntity::new, MobCategory.MONSTER) + .sized(3.0F, 4.0F) + .clientTrackingRange(12) + .build("hercules_beetle")); + + public static final DeferredHolder, EntityType> OURANWOOD_DEER = ENTITY_TYPES.register("ouranwood_deer", () -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity::new, MobCategory.CREATURE) .sized(1.125F, 1.75F) diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java index 078d9ee0..eb79d2ce 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricEntityAttributes.java @@ -296,18 +296,25 @@ public final class AntarchyFabricEntityAttributes { FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.TENTACLE.get(), TentacleEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.NIGHTMARE.get(), NightmareEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.STINK_BUG.get(), StinkBugEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.WASP.get(), WaspEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.BOMBER.get(), BomberEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.JUMPY_BUG.get(), JumpyBugEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.SPIT_BUG.get(), com.craisinlord.antarchy.content.entity.SpitBugEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MANTIS.get(), MantisEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build()); +// FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ROLLY_POLLY.get(), RollyPollyEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.TRIFFID.get(), TriffidEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.SCORPION.get(), ScorpionEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.BASILISK.get(), BasiliskEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), EmperorScorpionEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.TORETERROR.get(), ToreterrorEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.CREEPING_HORROR.get(), com.craisinlord.antarchy.content.entity.CreepingHorrorEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.LURKING_TERROR.get(), com.craisinlord.antarchy.content.entity.LurkingTerrorEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.entity.HerculesBeetleEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.GLIMMER.get(), com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ELKA.get(), com.craisinlord.antarchy.content.entity.ElkaEntity.createAttributes().build()); @@ -327,6 +334,11 @@ public final class AntarchyFabricEntityAttributes { AntarchySettings.rainbowAntMovementSpeed(), AntarchySettings.rainbowAntAttackDamage() ).build()); + FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.TERMITE.get(), buildAntAttributes( + AntarchySettings.termiteHealth(), + AntarchySettings.termiteMovementSpeed(), + AntarchySettings.termiteAttackDamage() + ).build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MOLEWORM.get(), MolewormEntity.createAttributes().build()); FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MOLEVORE.get(), MolevoreEntity.createAttributes().build()); } diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java index 24da8770..18ace057 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java @@ -96,6 +96,7 @@ import com.craisinlord.antarchy.content.entity.ant.BrownAntEntity; import com.craisinlord.antarchy.content.entity.ant.RainbowAntEntity; import com.craisinlord.antarchy.content.entity.ant.RedAntEntity; import com.craisinlord.antarchy.content.item.BattleAxeItem; +import com.craisinlord.antarchy.content.item.AttitudeAdjusterItem; import com.craisinlord.antarchy.content.item.BasiliskDaggerItem; import com.craisinlord.antarchy.content.item.BigBerthaItem; import com.craisinlord.antarchy.content.item.KrakensGraspItem; @@ -281,6 +282,14 @@ public final class AntarchyFabricItems { 18, AntarchyFabricItems::bloodCrystalRepairIngredient ); + private static final Tier ATTITUDE_ADJUSTER_TIER = new SimpleToolTier( + 3072, + 7.0F, + 0.0F, + Tiers.NETHERITE.getIncorrectBlocksForDrops(), + 18, + () -> Ingredient.of(AntarchyFabricItems.HERCULES_HORN.get()) + ); public static final DeferredItem NIGHTMARE_SCALE = ITEMS.registerSimpleItem("nightmare_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant()); @@ -454,6 +463,7 @@ public final class AntarchyFabricItems { public static final DeferredItem RAINBOW_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.RAINBOW_ANT_NEST); + public static final DeferredItem TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TERMITE_NEST); public static final DeferredItem URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_ORE); @@ -623,6 +633,22 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE); + public static final DeferredItem MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE); + public static final DeferredItem BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE); + public static final DeferredItem POLISHED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_BROODSTONE); + public static final DeferredItem CHISELED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_BROODSTONE); + public static final DeferredItem BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICKS); + public static final DeferredItem BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_STAIRS); + public static final DeferredItem BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_SLAB); + public static final DeferredItem BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_WALL); + public static final DeferredItem POLISHED_BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_BROODSTONE_STAIRS); + public static final DeferredItem POLISHED_BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_BROODSTONE_SLAB); + public static final DeferredItem POLISHED_BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_BROODSTONE_WALL); + public static final DeferredItem BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_STAIRS); + public static final DeferredItem BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_SLAB); + public static final DeferredItem BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_WALL); + public static final DeferredItem BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_URANIUM_ORE); + public static final DeferredItem BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_TITANIUM_ORE); public static final DeferredItem POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_NYXITE); @@ -632,6 +658,7 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICKS); + public static final DeferredItem CHITEN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITEN_BLOCK); public static final DeferredItem NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_STAIRS); @@ -723,6 +750,7 @@ public final class AntarchyFabricItems { public static final DeferredItem NYXITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_SPIKE); + public static final DeferredItem CHITEN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITEN_SPIKE); public static final DeferredItem POTENT_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POTENT_NYXITE); @@ -732,6 +760,11 @@ public final class AntarchyFabricItems { public static final DeferredItem UMBRAL_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UMBRAL_MOSS_CARPET); + public static final DeferredItem AMBER_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.AMBER_MOSS_BLOCK); + public static final DeferredItem AMBER_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.AMBER_MOSS_CARPET); + public static final DeferredItem AMBER_LICHEN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.AMBER_LICHEN); + public static final DeferredItem BILE_VEIN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BILE_VEIN); + public static final DeferredItem CREEPVINE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CREEPVINE); public static final DeferredItem BLUSH_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUSH_MOSS_BLOCK); @@ -751,12 +784,19 @@ public final class AntarchyFabricItems { public static final DeferredItem BED_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BED_BUG_EGG); + public static final DeferredItem CREEPING_HORROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CREEPING_HORROR_EGG); + public static final DeferredItem JUMPY_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.JUMPY_BUG_EGG); + public static final DeferredItem LURKING_TERROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LURKING_TERROR_EGG); public static final DeferredItem WASP_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.WASP_NEST); public static final DeferredItem HUSHWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.HUSHWEED); + public static final DeferredItem HANGING_CREEPROOTS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.HANGING_CREEPROOTS); + public static final DeferredItem GLOWCAP_MUSHROOM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.GLOWCAP_MUSHROOM); + public static final DeferredItem GLOWCAP_MUSHROOM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.GLOWCAP_MUSHROOM_BLOCK); + public static final DeferredItem MOLTING_VINES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOLTING_VINES); public static final DeferredItem BILE_BUCKET = ITEMS.register("bile_bucket", @@ -826,6 +866,7 @@ public final class AntarchyFabricItems { public static final DeferredItem MANTIS_CLAW = ITEMS.registerSimpleItem("mantis_claw", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final DeferredItem HERCULES_HORN = ITEMS.registerSimpleItem("hercules_horn", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem KING_SCALE = ITEMS.register("king_scale", @@ -836,12 +877,13 @@ public final class AntarchyFabricItems { () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); - public static final DeferredItem STINK_BUG_ITEM = ITEMS.register("stink_bug", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final DeferredItem CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON)); - public static final DeferredItem JUMPY_BUG_LEG = ITEMS.register("jumpy_bug_leg", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final DeferredItem STINK_BUG_ITEM = ITEMS.registerSimpleItem("stink_bug", new Item.Properties().rarity(Rarity.UNCOMMON)); + + + public static final DeferredItem JUMPY_BUG_LEG = ITEMS.registerSimpleItem("jumpy_bug_leg", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem JUMPY_BOOTS = ITEMS.register("jumpy_boots", @@ -885,6 +927,25 @@ public final class AntarchyFabricItems { .nutrition(2) .saturationModifier(0.3F) .build()))); + public static final DeferredItem BROODFRUIT = ITEMS.register("broodfruit", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(2) + .saturationModifier(0.1F) + .effect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 100, 0), 1.0F) + .build()))); + public static final DeferredItem RAW_BUG_MEAT = ITEMS.register("raw_bug_meat", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(3) + .saturationModifier(0.3F) + .build()))); + public static final DeferredItem COOKED_BUG_MEAT = ITEMS.register("cooked_bug_meat", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(8) + .saturationModifier(0.8F) + .build()))); public static final DeferredItem COOKED_VENISON = ITEMS.register("cooked_venison", @@ -1264,6 +1325,11 @@ public final class AntarchyFabricItems { AntarchySettings::battleAxeAttackDamage, -3.1F )); + public static final DeferredItem ATTITUDE_ADJUSTER = ITEMS.register("attitude_adjuster", + () -> new AttitudeAdjusterItem( + ATTITUDE_ADJUSTER_TIER, + new Item.Properties().stacksTo(1).durability(ATTITUDE_ADJUSTER_TIER.getUses()).rarity(Rarity.EPIC).fireResistant() + )); public static final DeferredItem DIAMOND_MINECART_ITEM = ITEMS.register("diamond_minecart", @@ -1353,6 +1419,10 @@ public final class AntarchyFabricItems { () -> new DeferredSpawnEggItem(AntarchyFabricEntities.RAINBOW_ANT, 0x56D4F0, 0xF66DBB, new Item.Properties())); + public static final DeferredItem TERMITE_SPAWN_EGG = ITEMS.register("termite_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.TERMITE, 0xD4B96A, 0xFF6B1A, new Item.Properties())); + + public static final DeferredItem MOLEWORM_SPAWN_EGG = ITEMS.register("moleworm_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyFabricEntities.MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties())); @@ -1365,6 +1435,10 @@ public final class AntarchyFabricItems { () -> new DeferredSpawnEggItem(AntarchyFabricEntities.ALPHA_MANTIS, 0x8FDD6C, 0x2F5D22, new Item.Properties())); +// public static final DeferredItem ROLLY_POLLY_SPAWN_EGG = ITEMS.register("rolly_polly_spawn_egg", +// () -> new DeferredSpawnEggItem(AntarchyFabricEntities.ROLLY_POLLY, 0x7284A3, 0xBCC8DB, new Item.Properties())); + + public static final DeferredItem MOLEVORE_SPAWN_EGG = ITEMS.register("molevore_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyFabricEntities.MOLEVORE, 0x4A4A4A, 0x6B4A2B, new Item.Properties().rarity(Rarity.UNCOMMON))); @@ -1397,6 +1471,18 @@ public final class AntarchyFabricItems { () -> new DeferredSpawnEggItem(AntarchyFabricEntities.BOMBER, 0x7A7A7A, 0xB32020, new Item.Properties())); + public static final DeferredItem JUMPY_BUG_SPAWN_EGG = ITEMS.register("jumpy_bug_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.JUMPY_BUG, 0x0A1636, 0x8A3E00, new Item.Properties())); + + + public static final DeferredItem SPIT_BUG_SPAWN_EGG = ITEMS.register("spit_bug_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.SPIT_BUG, 0x6B4A2B, 0x7ED957, new Item.Properties())); + + + public static final DeferredItem STINK_BUG_SPAWN_EGG = ITEMS.register("stink_bug_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.STINK_BUG, 0x111111, 0xFF7A00, new Item.Properties())); + + public static final DeferredItem CLOUD_SHARK_SPAWN_EGG = ITEMS.register("cloud_shark_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyFabricEntities.CLOUD_SHARK, 0xDDEAF4, 0x7F96A8, new Item.Properties())); @@ -1472,6 +1558,18 @@ public final class AntarchyFabricItems { new Item.Properties().stacksTo(1).rarity(Rarity.RARE).fireResistant().durability(ArmorItem.Type.BOOTS.getDurability(37)))); + public static final DeferredItem CREEPING_HORROR_SPAWN_EGG = ITEMS.register("creeping_horror_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.CREEPING_HORROR, 0x6B3A1F, 0x6B0000, new Item.Properties())); + + + public static final DeferredItem LURKING_TERROR_SPAWN_EGG = ITEMS.register("lurking_terror_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.LURKING_TERROR, 0x2D5A1B, 0x8B0000, new Item.Properties())); + + + public static final DeferredItem HERCULES_BEETLE_SPAWN_EGG = ITEMS.register("hercules_beetle_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyFabricEntities.HERCULES_BEETLE, 0x6B1F2A, 0xD4AF37, new Item.Properties().rarity(Rarity.RARE))); + + public static final DeferredItem TORETERROR_SPAWN_EGG = ITEMS.register("toreterror_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyFabricEntities.TORETERROR, 0x90EE90, 0x5C4033, new Item.Properties().rarity(Rarity.EPIC))); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java index ea8581db..ecfe57bf 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricMisc.java @@ -26,6 +26,8 @@ import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynBileCystFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynBileVeinFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynCreepvineFeature; import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynWallAmberMossFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.HangingCreeprootsFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.MoltingVinesFeature; import com.craisinlord.antarchy.content.worldgen.ocean.SeashellFeature; import com.craisinlord.antarchy.content.worldgen.overworld.CornPatchFeature; import com.craisinlord.antarchy.content.worldgen.thoraxis.NyxiteSpikeConfiguration; @@ -666,6 +668,10 @@ public final class AntarchyFabricMisc { () -> new RainbowAntNestFeature(SimpleBlockConfiguration.CODEC)); + public static final DeferredHolder, TermiteNestFeature> TERMITE_NEST_FEATURE = FEATURES.register("termite_nest", + () -> new TermiteNestFeature(SimpleBlockConfiguration.CODEC)); + + public static final DeferredHolder, OuranwoodTreeFeature> OURANWOOD_LARGE_TREE = FEATURES.register("ouranwood_large_tree", () -> new OuranwoodTreeFeature(OuranwoodTreeConfiguration.CODEC)); @@ -813,6 +819,39 @@ public final class AntarchyFabricMisc { () -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC)); + public static final DeferredHolder, ChitenSpikeFeature> CAVARYN_CHITEN_SPIKES = FEATURES.register("cavaryn_chiten_spikes", + () -> new ChitenSpikeFeature(ChitenSpikeConfiguration.CODEC)); + + + public static final DeferredHolder, CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins", + () -> new CavarynBileVeinFeature(NoneFeatureConfiguration.CODEC)); + + + public static final DeferredHolder, CavarynBileCystFeature> CAVARYN_BILE_CYSTS = FEATURES.register("cavaryn_bile_cysts", + () -> new CavarynBileCystFeature(NoneFeatureConfiguration.CODEC)); + + + public static final DeferredHolder, CavarynCreepvineFeature> CAVARYN_CREEPVINE = FEATURES.register("cavaryn_creepvine", + () -> new CavarynCreepvineFeature(NoneFeatureConfiguration.CODEC)); + + + public static final DeferredHolder, HangingCreeprootsFeature> HANGING_CREEPROOTS = FEATURES.register("hanging_creeproots", + () -> new HangingCreeprootsFeature(NoneFeatureConfiguration.CODEC)); + + + public static final DeferredHolder, MoltingVinesFeature> MOLTING_VINES = FEATURES.register("molting_vines", + () -> new MoltingVinesFeature(NoneFeatureConfiguration.CODEC)); + + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature> JUMPY_BUG_EGG_CEILING = FEATURES.register("jumpy_bug_egg_ceiling", + () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature> ROLLY_CAVES_GIANT_CAVERN = FEATURES.register("rolly_caves_giant_cavern", + () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature(NoneFeatureConfiguration.CODEC)); + + + public static final DeferredHolder, CavarynWallAmberMossFeature> CAVARYN_WALL_AMBER_MOSS = FEATURES.register("cavaryn_wall_amber_moss", + () -> new CavarynWallAmberMossFeature(NoneFeatureConfiguration.CODEC)); + + public static final DeferredHolder, AntiwaterSpringsFeature> ANTIWATER_SPRINGS = FEATURES.register("antiwater_springs", () -> new AntiwaterSpringsFeature(AntiwaterSpringsConfiguration.CODEC)); @@ -837,6 +876,16 @@ public final class AntarchyFabricMisc { () -> new BedBugSurfaceClusterFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, CavarynEggPatchFeature> CAVARYN_TERROR_EGG_PATCH = FEATURES.register("cavaryn_terror_egg_patch", + () -> new CavarynEggPatchFeature(NoneFeatureConfiguration.CODEC)); + + + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomFeature> HUGE_GLOWCAP_MUSHROOM = FEATURES.register("huge_glowcap_mushroom", + () -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature> HUGE_GLOWCAP_MUSHROOM_WORLDGEN = FEATURES.register("huge_glowcap_mushroom_worldgen", + () -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature(NoneFeatureConfiguration.CODEC)); + + public static final DeferredHolder, ThoraxisAntiwaterPoolFeature> THORAXIS_ANTIWATER_POOL = FEATURES.register("thoraxis_antiwater_pool", () -> new ThoraxisAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC)); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java index 1da468b2..88c3f313 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java @@ -628,6 +628,15 @@ public final class AntarchyFabricSounds { public static final DeferredHolder STINKY_FLY_SOUND = registerSoundEvent("stinky_fly"); + public static final DeferredHolder STINK_BUG_FART = registerSoundEvent("stink_bug_fart"); + + + public static final DeferredHolder STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle"); + + + public static final DeferredHolder ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle"); + + public static final DeferredHolder CREEPING_HORROR_GROWL = registerSoundEvent("creeping_horror_growl"); @@ -647,6 +656,19 @@ public final class AntarchyFabricSounds { public static final DeferredHolder LURKING_TERROR_FLY_LOOP = registerSoundEvent("lurking_terror_fly_loop"); + public static final DeferredHolder HERCULES_BEETLE_IDLE = registerSoundEvent("hercules_beetle_idle"); + public static final DeferredHolder HERCULES_BEETLE_HURT = registerSoundEvent("hercules_beetle_hurt"); + public static final DeferredHolder HERCULES_BEETLE_ATTACK = registerSoundEvent("hercules_beetle_attack"); + public static final DeferredHolder HERCULES_BEETLE_CRY = registerSoundEvent("hercules_beetle_cry"); + public static final DeferredHolder HERCULES_BEETLE_CHARGE_START = registerSoundEvent("hercules_beetle_charge_start"); + public static final DeferredHolder HERCULES_BEETLE_KNOCKED_DOWN = registerSoundEvent("hercules_beetle_knocked_down"); + public static final DeferredHolder JUMPY_BUG_IDLE = registerSoundEvent("jumpy_bug_idle"); + public static final DeferredHolder SPIT_BUG_IDLE = registerSoundEvent("spit_bug_idle"); + public static final DeferredHolder JUMPY_BUG_HURT = registerSoundEvent("jumpy_bug_hurt"); + public static final DeferredHolder JUMPY_BUG_JUMP = registerSoundEvent("jumpy_bug_jump"); + public static final DeferredHolder SPIT_BUG_HURT = registerSoundEvent("spit_bug_hurt"); + public static final DeferredHolder SPIT_BUG_SPIT = registerSoundEvent("spit_bug_spit"); + public static final DeferredHolder BRUTALFLY_SPIT = registerSoundEvent("brutalfly_spit"); public static final DeferredHolder DUCT_TAPE_USE = registerSoundEvent("duct_tape_use"); diff --git a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSpawnPlacements.java b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSpawnPlacements.java index ff8c6cc0..63916156 100644 --- a/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSpawnPlacements.java +++ b/fabric/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSpawnPlacements.java @@ -269,6 +269,8 @@ public final class AntarchyFabricSpawnPlacements { SpawnPlacements.register(AntarchyFabricEntities.CLOUD_SHARK.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CloudSharkEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.WASP.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WaspEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.BOMBER.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BomberEntity::canSpawn); + SpawnPlacements.register(AntarchyFabricEntities.JUMPY_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, JumpyBugEntity::canSpawn); + SpawnPlacements.register(AntarchyFabricEntities.SPIT_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.SpitBugEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.KRAKEN.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, KrakenEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.MISSILE_SQUID.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MissileSquidEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.OCTOPUS_BOMB.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, OctopusBombEntity::canSpawn); @@ -283,11 +285,16 @@ public final class AntarchyFabricSpawnPlacements { SpawnPlacements.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AlphaMantisEntity::checkAlphaMantisSpawnRules); SpawnPlacements.register(AntarchyFabricEntities.MOLEVORE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolevoreEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.BED_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BedBugEntity::canSpawn); + SpawnPlacements.register(AntarchyFabricEntities.STINK_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StinkBugEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.LUCID.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LucidEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ScorpionEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.BASILISK.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BasiliskEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn); SpawnPlacements.register(AntarchyFabricEntities.TORETERROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ToreterrorEntity::canSpawn); + SpawnPlacements.register(AntarchyFabricEntities.CREEPING_HORROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.CreepingHorrorEntity::canSpawn); + SpawnPlacements.register(AntarchyFabricEntities.LURKING_TERROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.LurkingTerrorEntity::canSpawn); + SpawnPlacements.register(AntarchyFabricEntities.TERMITE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules); +// SpawnPlacements.register(AntarchyFabricEntities.ROLLY_POLLY.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.RollyPollyEntity::canSpawn); } } diff --git a/fabric/src/main/resources/assets/antarchy/models/item/attitude_adjuster.json b/fabric/src/main/resources/assets/antarchy/models/item/attitude_adjuster.json new file mode 100644 index 00000000..91de2a88 --- /dev/null +++ b/fabric/src/main/resources/assets/antarchy/models/item/attitude_adjuster.json @@ -0,0 +1,3 @@ +{ + "parent": "antarchy:item/attitude_adjuster_held" +} diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java index 8e779cd4..acf6b776 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyConfigModuleNeoforge.java @@ -1,6 +1,7 @@ package com.craisinlord.antarchy.neoforge; import com.craisinlord.antarchy.config.AntarchySettings; +import com.craisinlord.antarchy.content.network.ImpactShakeSync; import com.craisinlord.antarchy.config.ConfigResetGuard; import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload; import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync; @@ -26,6 +27,7 @@ public final class AntarchyConfigModuleNeoforge { modContainer.registerConfig(ModConfig.Type.COMMON, AntarchyToolsConfig.SPEC, "antarchy/antarchy_tools.toml"); modContainer.registerConfig(ModConfig.Type.COMMON, AntarchyMiscConfig.SPEC, "antarchy/antarchy_misc.toml"); HerculesBeetleImpactShakeSync.setSink((player, ticks) -> PacketDistributor.sendToPlayer(player, new HerculesBeetleImpactShakePayload(ticks))); + ImpactShakeSync.setSink(PacketDistributor::sendToPlayer); AntarchyNeoforge.modEventBusTempHolder.addListener(AntarchyConfigModuleNeoforge::onConfigChange); } @@ -254,6 +256,8 @@ public final class AntarchyConfigModuleNeoforge { AntarchySettings.setBigBerthaAttackDamage(AntarchyToolsConfig.bigBerthaAttackDamage()); AntarchySettings.setBigBerthaReachBonus(AntarchyToolsConfig.bigBerthaReachBonus()); AntarchySettings.setBigBerthaAttackSpeed(AntarchyToolsConfig.bigBerthaAttackSpeed()); + AntarchySettings.setAttitudeAdjusterBaseDamage(AntarchyToolsConfig.attitudeAdjusterBaseDamage()); + AntarchySettings.setAttitudeAdjusterBreaksBlocks(AntarchyToolsConfig.attitudeAdjusterBreaksBlocks()); AntarchySettings.setBigBerthaBasiliskParalyzeDurationTicks(AntarchyToolsConfig.bigBerthaBasiliskParalyzeDurationTicks()); AntarchySettings.setBigBerthaKrakenSlowTicks(AntarchyToolsConfig.bigBerthaKrakenSlowTicks()); AntarchySettings.setBigBerthaBasiliskCooldownSeconds(AntarchyToolsConfig.bigBerthaBasiliskCooldownSeconds()); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java index 1ffda8f8..129ac179 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyNeoforge.java @@ -150,6 +150,9 @@ public class AntarchyNeoforge { AntarchyNeoforgeSounds.TORETERROR_JUMP_UP, AntarchyNeoforgeSounds.TORETERROR_JUMP_LAND, AntarchyNeoforgeSounds.STINKY_FLY, + AntarchyNeoforgeSounds.STINK_BUG_FART, + AntarchyNeoforgeSounds.STINK_BUG_IDLE, + AntarchyNeoforgeSounds.ROLLY_POLLY_IDLE, AntarchyNeoforgeSounds.CREEPING_HORROR_GROWL, AntarchyNeoforgeSounds.CREEPING_HORROR_HURT, AntarchyNeoforgeSounds.CREEPING_HORROR_BITE, @@ -157,7 +160,20 @@ public class AntarchyNeoforge { AntarchyNeoforgeSounds.LURKING_TERROR_HURT, AntarchyNeoforgeSounds.LURKING_TERROR_BITE, AntarchyNeoforgeSounds.LURKING_TERROR_FLY_LOOP, - AntarchyNeoforgeSounds.DUCT_TAPE_USE + AntarchyNeoforgeSounds.DUCT_TAPE_USE, + AntarchyNeoforgeSounds.HERCULES_BEETLE_IDLE, + AntarchyNeoforgeSounds.HERCULES_BEETLE_HURT, + AntarchyNeoforgeSounds.HERCULES_BEETLE_ATTACK, + AntarchyNeoforgeSounds.HERCULES_BEETLE_CRY, + AntarchyNeoforgeSounds.HERCULES_BEETLE_CHARGE_START, + AntarchyNeoforgeSounds.HERCULES_BEETLE_KNOCKED_DOWN, + AntarchyNeoforgeSounds.JUMPY_BUG_IDLE, + AntarchyNeoforgeSounds.SPIT_BUG_IDLE, + AntarchyNeoforgeSounds.JUMPY_BUG_HURT, + AntarchyNeoforgeSounds.JUMPY_BUG_JUMP, + AntarchyNeoforgeSounds.SPIT_BUG_HURT, + AntarchyNeoforgeSounds.SPIT_BUG_SPIT, + AntarchyNeoforgeSounds.BRUTALFLY_SPIT ); bindCommonObjects(); ScorpionWhipTetherSync.setSink((player, targetId) -> PacketDistributor.sendToPlayersTrackingEntityAndSelf( @@ -192,8 +208,8 @@ public class AntarchyNeoforge { () -> AntarchyNeoforgeBlocks.ELYTHIA_PORTAL.get(), () -> AntarchyNeoforgeBlocks.NYXITE.get(), () -> AntarchyNeoforgeBlocks.THORAXIS_PORTAL.get(), - () -> AntarchyNeoforgeBlocks.NYXITE.get(), - () -> AntarchyNeoforgeBlocks.THORAXIS_PORTAL.get() + () -> AntarchyNeoforgeBlocks.MYRMITE.get(), + () -> AntarchyNeoforgeBlocks.CAVARYN_PORTAL.get() ); AntarchyObjects.bind( AntarchyNeoforgeEntites.EASTER_BUNNY, @@ -215,9 +231,9 @@ public class AntarchyNeoforge { AntarchyNeoforgeEntites.HUSH_PROJECTILE, AntarchyNeoforgeEntites.TORETERROR, AntarchyNeoforgeEntites.WATER_BOMB, - (java.util.function.Supplier) AntarchyNeoforgeEntites.BOMBER, - (java.util.function.Supplier) AntarchyNeoforgeEntites.BOMBER, - (java.util.function.Supplier) AntarchyNeoforgeEntites.BED_BUG, + AntarchyNeoforgeEntites.CREEPING_HORROR, + AntarchyNeoforgeEntites.LURKING_TERROR, + AntarchyNeoforgeEntites.STINK_BUG, AntarchyNeoforgeEntites.CHEEP, AntarchyNeoforgeEntites.DORRIE, () -> AntarchyNeoforgeBlocks.DUPLICATOR_LOG.get(), @@ -248,8 +264,8 @@ public class AntarchyNeoforge { () -> AntarchyNeoforgeBlocks.TRIFFID_GOO_BLOCK.get(), () -> AntarchyNeoforgeBlocks.PALE_NYXITE.get(), () -> AntarchyNeoforgeBlocks.NYXITE_SPIKE.get(), - () -> AntarchyNeoforgeBlocks.NYXITE.get(), - () -> AntarchyNeoforgeBlocks.NYXITE_SPIKE.get(), + () -> AntarchyNeoforgeBlocks.CHITEN_BLOCK.get(), + () -> AntarchyNeoforgeBlocks.CHITEN_SPIKE.get(), () -> AntarchyNeoforgeBlocks.POTENT_NYXITE.get(), () -> AntarchyNeoforgeBlocks.ANTIMETAL.get(), () -> AntarchyNeoforgeBlocks.POLISHED_ANTIMETAL.get(), @@ -277,8 +293,8 @@ public class AntarchyNeoforge { () -> AntarchyNeoforgeBlocks.ORANGE_MILKWEED.get(), () -> AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), () -> AntarchyNeoforgeBlocks.BED_BUG_EGG.get(), - () -> AntarchyNeoforgeBlocks.BED_BUG_EGG.get(), - () -> AntarchyNeoforgeBlocks.BED_BUG_EGG.get(), + () -> AntarchyNeoforgeBlocks.CREEPING_HORROR_EGG.get(), + () -> AntarchyNeoforgeBlocks.LURKING_TERROR_EGG.get(), () -> AntarchyNeoforgeBlocks.WASP_NEST.get(), () -> AntarchyNeoforgeBlocks.HUSHWEED.get(), () -> AntarchyNeoforgeBlocks.OURANWOOD_SQUIRREL_NEST.get(), diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java index 0def34c2..fd05a416 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/AntarchyToolsConfig.java @@ -79,6 +79,8 @@ public final class AntarchyToolsConfig { private static final ModConfigSpec.DoubleValue BIG_BERTHA_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue BIG_BERTHA_REACH_BONUS; private static final ModConfigSpec.DoubleValue BIG_BERTHA_ATTACK_SPEED; + private static final ModConfigSpec.DoubleValue ATTITUDE_ADJUSTER_BASE_DAMAGE; + private static final ModConfigSpec.BooleanValue ATTITUDE_ADJUSTER_BREAKS_BLOCKS; private static final ModConfigSpec.DoubleValue KRAKENS_GRASP_ATTACK_DAMAGE; private static final ModConfigSpec.DoubleValue KRAKENS_GRASP_ATTACK_SPEED; private static final ModConfigSpec.DoubleValue KRAKENS_GRASP_THROWN_DAMAGE; @@ -321,6 +323,11 @@ public final class AntarchyToolsConfig { BIG_BERTHA_LUCID_INVERTED_DAMAGE_BONUS_PERCENT = b.comment("Bonus damage percent from Lucid mode while the wielder is inverted.") .defineInRange("lucidModeInvertedDamageBonusPercent", 25.0D, 0.0D, 1000.0D); b.pop(); + b.push("attitudeAdjuster"); + ATTITUDE_ADJUSTER_BASE_DAMAGE = b.comment("Base attack damage of the Attitude Adjuster.").defineInRange("baseDamage", 40.0D, 0.0D, 4096.0D); + ATTITUDE_ADJUSTER_BREAKS_BLOCKS = b.comment("If true, player ground slams can break a small patch of blocks on impact.").define("breaksBlocks", true); + b.pop(); + b.push("krakensGrasp"); KRAKENS_GRASP_ATTACK_DAMAGE = b.comment("Melee attack damage of Kraken's Grasp.") .defineInRange("attackDamage", 16.0D, 0.0D, 4096.0D); KRAKENS_GRASP_ATTACK_SPEED = b.comment("Attack speed of Kraken's Grasp.") .defineInRange("attackSpeed", -2.9D, -10.0D, 10.0D); @@ -584,6 +591,8 @@ public final class AntarchyToolsConfig { static double bigBerthaAttackDamage() { return BIG_BERTHA_ATTACK_DAMAGE.get(); } static double bigBerthaReachBonus() { return BIG_BERTHA_REACH_BONUS.get(); } static double bigBerthaAttackSpeed() { return BIG_BERTHA_ATTACK_SPEED.get(); } + static double attitudeAdjusterBaseDamage() { return ATTITUDE_ADJUSTER_BASE_DAMAGE.get(); } + static boolean attitudeAdjusterBreaksBlocks() { return ATTITUDE_ADJUSTER_BREAKS_BLOCKS.get(); } static int bigBerthaBasiliskParalyzeDurationTicks() { return BIG_BERTHA_BASILISK_PARALYZE_DURATION_TICKS.get(); } static int bigBerthaKrakenSlowTicks() { return BIG_BERTHA_KRAKEN_SLOW_TICKS.get(); } static double bigBerthaBasiliskCooldownSeconds() { return BIG_BERTHA_BASILISK_COOLDOWN_SECONDS.get(); } diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java index 3e8f315a..606a7889 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/AntarchyNeoForgeClient.java @@ -139,6 +139,15 @@ public final class AntarchyNeoForgeClient { event.registerEntityRenderer(AntarchyNeoforgeEntites.OURANWOOD_DEER.get(), context -> new com.craisinlord.antarchy.content.client.renderer.OuranwoodDeerRenderer(context)); event.registerEntityRenderer(AntarchyNeoforgeEntites.GLIMMER.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.glimmer.GlimmerRenderer(context))); event.registerEntityRenderer(AntarchyNeoforgeEntites.ELKA.get(), context -> new com.craisinlord.antarchy.content.client.renderer.ElkaRenderer(context)); +// event.registerEntityRenderer(AntarchyNeoforgeEntites.ROLLY_POLLY.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.RollyPollyRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.TERMITE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.TermiteRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.CREEPING_HORROR.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CreepingHorrorRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.LURKING_TERROR.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.LurkingTerrorRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.HERCULES_BEETLE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.HerculesBeetleRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.JUMPY_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.JumpyBugRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.SPIT_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.SpitBugRenderer(context))); + event.registerEntityRenderer(AntarchyNeoforgeEntites.SPIT_BUG_PROJECTILE.get(), com.craisinlord.antarchy.content.client.renderer.SpitBugProjectileRenderer::new); + event.registerEntityRenderer(AntarchyNeoforgeEntites.STINK_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.StinkBugRenderer(context))); } @SubscribeEvent @@ -518,11 +527,11 @@ public final class AntarchyNeoForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_SAPLING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout()); - // ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE.get(), RenderType.cutout()); - // ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE_PLANT.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.ORANGE_MILKWEED.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.AMBER_LICHEN.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CREEPVINE.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CAMELLIA.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.SPIDER_LILY.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_SPIDER_LILY.get(), RenderType.cutout()); @@ -537,6 +546,7 @@ public final class AntarchyNeoForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.ANTIMETAL_SCAFFOLDING.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.NYXITE_SPIKE.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CHITEN_SPIKE.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.STAR_CORAL.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.STAR_CORAL_FAN.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout()); @@ -565,6 +575,11 @@ public final class AntarchyNeoForgeClient { ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.URANIUM_BARS.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.TITANIUM_BARS.get(), RenderType.cutout()); ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CLOUD_BLOCK.get(), RenderType.translucent()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.JUMPY_BUG_EGG.get(), RenderType.translucent()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.HANGING_CREEPROOTS.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.MOLTING_VINES.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_GLOWCAP_MUSHROOM.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.GLOWCAP_MUSHROOM.get(), RenderType.cutout()); registerUltimateBowProperties(); registerUltimateCrossbowProperties(); }); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/HerculesBeetleClientHandler.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/HerculesBeetleClientHandler.java index 99d9b773..b0e87027 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/HerculesBeetleClientHandler.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/client/HerculesBeetleClientHandler.java @@ -1,6 +1,7 @@ package com.craisinlord.antarchy.neoforge.client; import com.craisinlord.antarchy.Antarchy; +import com.craisinlord.antarchy.content.client.CameraShakeClientState; import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState; import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity; import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload; @@ -28,6 +29,7 @@ public final class HerculesBeetleClientHandler { @SubscribeEvent public static void onClientTick(ClientTickEvent.Post event) { + CameraShakeClientState.tick(); HerculesBeetleImpactShakeClientState.tick(); Minecraft mc = Minecraft.getInstance(); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java index 214396bc..5e8fb44a 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/network/AntarchyGravityNetworking.java @@ -8,8 +8,11 @@ import com.craisinlord.antarchy.content.network.BigBerthaModeCyclePayload; import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload; import com.craisinlord.antarchy.content.network.GravityGunScrollPayload; import com.craisinlord.antarchy.content.network.GravityStatePayload; +import com.craisinlord.antarchy.content.network.ImpactShakePayload; +import com.craisinlord.antarchy.content.client.CameraShakeClientState; import net.minecraft.world.entity.Entity; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.phys.Vec3; import net.neoforged.neoforge.network.PacketDistributor; import net.neoforged.neoforge.network.handling.IPayloadContext; import net.neoforged.neoforge.network.registration.PayloadRegistrar; @@ -23,6 +26,10 @@ public final class AntarchyGravityNetworking { GravityStatePayload.TYPE, GravityStatePayload.STREAM_CODEC, AntarchyGravityNetworking::handleGravityState + ).playToClient( + ImpactShakePayload.TYPE, + ImpactShakePayload.STREAM_CODEC, + AntarchyGravityNetworking::handleImpactShake ).playToServer( GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC, @@ -89,6 +96,15 @@ public final class AntarchyGravityNetworking { }); } + private static void handleImpactShake(ImpactShakePayload payload, IPayloadContext context) { + context.enqueueWork(() -> CameraShakeClientState.triggerImpact( + new Vec3(payload.x(), payload.y(), payload.z()), + payload.intensity(), + payload.durationTicks(), + payload.radius() + )); + } + private static void handleGravityGunScroll(GravityGunScrollPayload payload, IPayloadContext context) { context.enqueueWork(() -> { if (!(context.player() instanceof ServerPlayer serverPlayer)) { 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 fd31d377..9990c75e 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 @@ -88,6 +88,7 @@ public final class AntarchyNeoForgeEvents { NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleUltimateCrossbowDamage); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleNightmareArmorDoubleDamage); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipAttackEntity); + NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleAttitudeAdjusterAttackEntity); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipLeftClickBlock); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipRightClickBlock); NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleScorpionWhipRightClickItem); @@ -777,6 +778,16 @@ public final class AntarchyNeoForgeEvents { } } + static void handleAttitudeAdjusterAttackEntity(AttackEntityEvent event) { + if (!(event.getEntity() instanceof ServerPlayer player)) { + return; + } + if (!(player.getMainHandItem().getItem() instanceof AttitudeAdjusterItem) || player.getAttackStrengthScale(0.5F) < 0.95F) { + return; + } + AttitudeAdjusterSlamManager.markSpecialHit(player); + } + static void handleScorpionWhipLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) { if (!(event.getEntity() instanceof ServerPlayer player)) { return; @@ -899,6 +910,7 @@ public final class AntarchyNeoForgeEvents { static void tickMinersDreamExcavations(ServerTickEvent.Post event) { for (ServerLevel level : event.getServer().getAllLevels()) { + AttitudeAdjusterSlamManager.tick(level); MinersDreamExcavationManager.tick(level); } } diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java index 7bae9663..a2c5841c 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeBlocks.java @@ -40,9 +40,6 @@ import net.neoforged.neoforge.registries.DeferredRegister; public final class AntarchyNeoforgeBlocks { private static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Antarchy.MODID); private static final DeferredRegister> BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, Antarchy.MODID); - // private static final OuranwoodVineBlock OURANWOOD_VINE_INSTANCE = new OuranwoodVineBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WEEPING_VINES).lightLevel(state -> 12)); - // private static final OuranwoodVinePlantBlock OURANWOOD_VINE_PLANT_INSTANCE = createOuranwoodVinePlant(); - public static final DeferredBlock DUPLICATOR_LOG = BLOCKS.register("duplicator_log", () -> new DuplicatorLogBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_LOG).randomTicks())); public static final DeferredBlock OURANWOOD_LOG = BLOCKS.register("ouranwood_log", @@ -81,10 +78,6 @@ public final class AntarchyNeoforgeBlocks { () -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission())); public static final DeferredBlock POTTED_OURANWOOD_ACORN = BLOCKS.register("potted_ouranwood_acorn", () -> new FlowerPotBlock(OURANWOOD_ACORN_BLOCK.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION))); - // public static final DeferredBlock OURANWOOD_VINE = BLOCKS.register("ouranwood_vine", - // () -> OURANWOOD_VINE_INSTANCE); - // public static final DeferredBlock OURANWOOD_VINE_PLANT = BLOCKS.register("ouranwood_vine_plant", - // () -> OURANWOOD_VINE_PLANT_INSTANCE); public static final DeferredBlock ORANGE_MILKWEED = BLOCKS.register("orange_milkweed", () -> new MilkweedBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PEONY))); public static final DeferredBlock PINK_MILKWEED = BLOCKS.register("pink_milkweed", @@ -104,7 +97,7 @@ public final class AntarchyNeoforgeBlocks { public static final DeferredBlock SEASHELL = BLOCKS.register("seashell", () -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion())); public static final DeferredBlock CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block", - () -> new CritterCageBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS).noOcclusion())); + () -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion())); public static final DeferredBlock OURANWOOD_SIGN = BLOCKS.register("ouranwood_sign", () -> new StandingSignBlock(AntarchyWoodTypes.OURANWOOD, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SIGN))); public static final DeferredBlock OURANWOOD_WALL_SIGN = BLOCKS.register("ouranwood_wall_sign", @@ -240,19 +233,67 @@ public final class AntarchyNeoforgeBlocks { () -> new AntDimensionPortalBlock(PermanentPortalType.ELYTHIA, portalProperties())); public static final DeferredBlock THORAXIS_PORTAL = BLOCKS.register("thoraxis_portal", () -> new AntDimensionPortalBlock(PermanentPortalType.THORAXIS, portalProperties())); + public static final DeferredBlock CAVARYN_PORTAL = BLOCKS.register("cavaryn_portal", + () -> new AntDimensionPortalBlock(PermanentPortalType.CAVARYN, portalProperties())); public static final DeferredBlock PALE_NYXITE = BLOCKS.register("pale_nyxite", () -> new Block(nyxiteProperties())); public static final DeferredBlock NYXITE_SPIKE = BLOCKS.register("nyxite_spike", () -> new NyxiteSpikeBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POINTED_DRIPSTONE))); + public static final DeferredBlock CHITEN_SPIKE = BLOCKS.register("chiten_spike", + () -> new ChitenSpikeBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POINTED_DRIPSTONE))); public static final DeferredBlock POTENT_NYXITE = BLOCKS.register("potent_nyxite", () -> new PotentNyxiteBlock( AntarchyNeoforgeItems::potentNyxiteBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK).lightLevel(state -> 3) )); + public static final DeferredBlock MYRMITE = BLOCKS.register("myrmite", + () -> new Block(nyxiteProperties())); + public static final DeferredBlock BROODSTONE = BLOCKS.register("broodstone", + () -> new Block(broodstoneProperties())); + public static final DeferredBlock POLISHED_BROODSTONE = BLOCKS.register("polished_broodstone", + () -> new Block(broodstoneProperties())); + public static final DeferredBlock CHISELED_BROODSTONE = BLOCKS.register("chiseled_broodstone", + () -> new Block(broodstoneProperties())); + public static final DeferredBlock BROODSTONE_BRICKS = BLOCKS.register("broodstone_bricks", + () -> new Block(broodstoneProperties())); + public static final DeferredBlock BROODSTONE_STAIRS = BLOCKS.register("broodstone_stairs", + () -> new StairBlock(BROODSTONE.get().defaultBlockState(), broodstoneProperties())); + public static final DeferredBlock BROODSTONE_SLAB = BLOCKS.register("broodstone_slab", + () -> new SlabBlock(broodstoneProperties())); + public static final DeferredBlock BROODSTONE_WALL = BLOCKS.register("broodstone_wall", + () -> new WallBlock(broodstoneProperties())); + public static final DeferredBlock POLISHED_BROODSTONE_STAIRS = BLOCKS.register("polished_broodstone_stairs", + () -> new StairBlock(POLISHED_BROODSTONE.get().defaultBlockState(), broodstoneProperties())); + public static final DeferredBlock POLISHED_BROODSTONE_SLAB = BLOCKS.register("polished_broodstone_slab", + () -> new SlabBlock(broodstoneProperties())); + public static final DeferredBlock POLISHED_BROODSTONE_WALL = BLOCKS.register("polished_broodstone_wall", + () -> new WallBlock(broodstoneProperties())); + public static final DeferredBlock BROODSTONE_BRICK_STAIRS = BLOCKS.register("broodstone_brick_stairs", + () -> new StairBlock(BROODSTONE_BRICKS.get().defaultBlockState(), broodstoneProperties())); + public static final DeferredBlock BROODSTONE_BRICK_SLAB = BLOCKS.register("broodstone_brick_slab", + () -> new SlabBlock(broodstoneProperties())); + public static final DeferredBlock BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall", + () -> new WallBlock(broodstoneProperties())); + public static final DeferredBlock BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore", + () -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8)); + public static final DeferredBlock BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore", + () -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8)); + public static final DeferredBlock CHITEN_BLOCK = BLOCKS.register("chiten_block", + () -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops())); public static final DeferredBlock UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block", () -> new UmbralMossBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK))); public static final DeferredBlock UMBRAL_MOSS_CARPET = BLOCKS.register("umbral_moss_carpet", () -> new UmbralMossCarpetBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).noOcclusion())); + public static final DeferredBlock AMBER_MOSS_BLOCK = BLOCKS.register("amber_moss_block", + () -> new AmberMossBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK))); + public static final DeferredBlock AMBER_MOSS_CARPET = BLOCKS.register("amber_moss_carpet", + () -> new UmbralMossCarpetBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).noOcclusion())); + public static final DeferredBlock AMBER_LICHEN = BLOCKS.register("amber_lichen", + () -> new GlowLichenBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.GLOW_LICHEN).lightLevel(state -> 4))); + public static final DeferredBlock BILE_VEIN = BLOCKS.register("bile_vein", + () -> new Block(BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK).lightLevel(state -> 2))); + public static final DeferredBlock CREEPVINE = BLOCKS.register("creepvine", + () -> new VineBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.VINE))); public static final DeferredBlock BLUSH_MOSS_BLOCK = BLOCKS.register("blush_moss_block", () -> new BlushMossBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_BLOCK))); public static final DeferredBlock BLUSH_MOSS_CARPET = BLOCKS.register("blush_moss_carpet", @@ -277,6 +318,12 @@ public final class AntarchyNeoforgeBlocks { .noOcclusion() .noCollission() .replaceable())); + public static final DeferredBlock CREEPING_HORROR_EGG = BLOCKS.register("creeping_horror_egg", + () -> new CreepingHorrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG))); + public static final DeferredBlock JUMPY_BUG_EGG = BLOCKS.register("jumpy_bug_egg", + () -> new JumpyBugEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG))); + public static final DeferredBlock LURKING_TERROR_EGG = BLOCKS.register("lurking_terror_egg", + () -> new LurkingTerrorEggBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG))); public static final DeferredBlock WASP_NEST = BLOCKS.register("wasp_nest", () -> new WaspNestBlock(AntarchyNeoforgeItems::waspNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.BEE_NEST))); public static final DeferredBlock OURANWOOD_SQUIRREL_NEST = BLOCKS.register("ouranwood_squirrel_nest", @@ -285,6 +332,10 @@ public final class AntarchyNeoforgeBlocks { () -> new com.craisinlord.antarchy.content.block.BrutalflyCocoonSpawnerBlock(BlockBehaviour.Properties.of().noCollission().instabreak().noLootTable())); public static final DeferredBlock HUSHWEED = BLOCKS.register("hushweed", () -> new HushweedBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AZALEA).noCollission().noOcclusion())); + public static final DeferredBlock HANGING_CREEPROOTS = BLOCKS.register("hanging_creeproots", + () -> new HangingCreeprootsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.HANGING_ROOTS))); + public static final DeferredBlock MOLTING_VINES = BLOCKS.register("molting_vines", + () -> new MoltingVinesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WEEPING_VINES))); public static final DeferredBlock BILE_BLOCK = BLOCKS.register("bile", () -> new BileLiquidBlock((FlowingFluid) AntarchyNeoforgeMisc.BILE.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.WATER).lightLevel(state -> 5).noLootTable())); public static final DeferredBlock ICHOR_BLOCK = BLOCKS.register("ichor", @@ -310,6 +361,8 @@ public final class AntarchyNeoforgeBlocks { () -> new AntNestBlock(AntarchyNeoforgeEntites.BROWN_ANT, AntarchyNeoforgeItems::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable())); public static final DeferredBlock RAINBOW_ANT_NEST = BLOCKS.register("rainbow_ant_nest", () -> new AntNestBlock(AntarchyNeoforgeEntites.RAINBOW_ANT, AntarchyNeoforgeItems::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable())); + public static final DeferredBlock TERMITE_NEST = BLOCKS.register("termite_nest", + () -> new AntNestBlock(AntarchyNeoforgeEntites.TERMITE, AntarchyNeoforgeItems::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable())); public static final DeferredBlock URANIUM_ORE = BLOCKS.register("uranium_ore", () -> createOre(Blocks.EMERALD_ORE, 4, 8)); public static final DeferredBlock DEEPSLATE_URANIUM_ORE = BLOCKS.register("deepslate_uranium_ore", @@ -323,9 +376,9 @@ public final class AntarchyNeoforgeBlocks { public static final DeferredBlock TITANIUM_BLOCK = BLOCKS.register("titanium_block", () -> createStorageBlock(Blocks.DIAMOND_BLOCK)); public static final DeferredBlock RAW_URANIUM_BLOCK = BLOCKS.register("raw_uranium_block", - () -> createRawStorageBlock(Blocks.RAW_GOLD_BLOCK)); + () -> createRawStorageBlock(Blocks.EMERALD_ORE)); public static final DeferredBlock RAW_TITANIUM_BLOCK = BLOCKS.register("raw_titanium_block", - () -> createRawStorageBlock(Blocks.RAW_IRON_BLOCK)); + () -> createRawStorageBlock(Blocks.DIAMOND_ORE)); public static final DeferredBlock CUT_URANIUM = BLOCKS.register("cut_uranium", () -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER)); public static final DeferredBlock CUT_TITANIUM = BLOCKS.register("cut_titanium", @@ -366,6 +419,12 @@ public final class AntarchyNeoforgeBlocks { () -> new com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SCAFFOLDING))); public static final DeferredBlock CORNEA_STALK = BLOCKS.register("cornea_stalk", () -> new CorneaStalkBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SWEET_BERRY_BUSH).randomTicks())); + public static final DeferredBlock GLOWCAP_MUSHROOM = BLOCKS.register("glowcap_mushroom", + () -> new com.craisinlord.antarchy.content.block.GlowcapMushroomBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.RED_MUSHROOM).lightLevel(state -> 12).randomTicks())); + public static final DeferredBlock POTTED_GLOWCAP_MUSHROOM = BLOCKS.register("potted_glowcap_mushroom", + () -> new FlowerPotBlock(GLOWCAP_MUSHROOM.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION).lightLevel(state -> 12))); + public static final DeferredBlock GLOWCAP_MUSHROOM_BLOCK = BLOCKS.register("glowcap_mushroom_block", + () -> new net.minecraft.world.level.block.HugeMushroomBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.RED_MUSHROOM_BLOCK).lightLevel(state -> 13))); public static final DeferredBlock CORN_CROP = BLOCKS.register("corn_crop", () -> new CornCropBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WHEAT).randomTicks().noCollission().noOcclusion())); public static final DeferredBlock WILD_CORN = BLOCKS.register("wild_corn", @@ -440,7 +499,8 @@ public final class AntarchyNeoforgeBlocks { AntNestBlockEntity::new, RED_ANT_NEST.get(), BROWN_ANT_NEST.get(), - RAINBOW_ANT_NEST.get() + RAINBOW_ANT_NEST.get(), + TERMITE_NEST.get() ).build(null)); public static final DeferredHolder, BlockEntityType> DREAM_CAMPFIRE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("dream_campfire", () -> BlockEntityType.Builder.of( @@ -484,6 +544,10 @@ public final class AntarchyNeoforgeBlocks { return BlockBehaviour.Properties.ofFullCopy(Blocks.NETHERRACK); } + static BlockBehaviour.Properties broodstoneProperties() { + return BlockBehaviour.Properties.ofFullCopy(Blocks.DEEPSLATE).requiresCorrectToolForDrops(); + } + private static BlockBehaviour.Properties portalProperties() { return BlockBehaviour.Properties.of() .strength(-1.0F) @@ -508,9 +572,7 @@ public final class AntarchyNeoforgeBlocks { } static Block createRawStorageBlock(Block copyFrom) { - return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom) - .strength(3.5F, 6.0F) - .requiresCorrectToolForDrops()); + return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops()); } private static Block smallBloodCrystalBudBlock() { @@ -529,12 +591,6 @@ public final class AntarchyNeoforgeBlocks { return BLOOD_CRYSTAL_CRYSTAL.get(); } - // private static OuranwoodVinePlantBlock createOuranwoodVinePlant() { - // OuranwoodVinePlantBlock.bindHeadBlock(OURANWOOD_VINE_INSTANCE); - // OuranwoodVinePlantBlock block = new OuranwoodVinePlantBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.WEEPING_VINES_PLANT)); - // OuranwoodVineBlock.bindBodyBlock(block); - // return block; - // } private static final class SimpleHorizontalFacingBlock extends HorizontalDirectionalBlock { private static final MapCodec CODEC = simpleCodec(SimpleHorizontalFacingBlock::new); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java index 9417dc19..c558cfb9 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeCreativeModeTabs.java @@ -59,9 +59,11 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.RED_ANT_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.BROWN_ANT_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.RAINBOW_ANT_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.TERMITE_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.MOLEWORM_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.MANTIS_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.ALPHA_MANTIS_SPAWN_EGG.get()); +// event.accept(AntarchyNeoforgeItems.ROLLY_POLLY_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.MOLEVORE_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.TRIFFID_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.APPLE_COW_SPAWN_EGG.get()); @@ -70,6 +72,9 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.DR_TRAYAURUS_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.WASP_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.BOMBER_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.JUMPY_BUG_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.SPIT_BUG_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.STINK_BUG_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.CLOUD_SHARK_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.KRAKEN_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.MISSILE_SQUID_SPAWN_EGG.get()); @@ -81,6 +86,9 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.BASILISK_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.EMPEROR_SCORPION_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.TORETERROR_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.CREEPING_HORROR_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.LURKING_TERROR_SPAWN_EGG.get()); + event.accept(AntarchyNeoforgeItems.HERCULES_BEETLE_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.DORRIE_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.OURANWOOD_DEER_SPAWN_EGG.get()); event.accept(AntarchyNeoforgeItems.GLIMMER_SPAWN_EGG.get()); @@ -92,7 +100,6 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.OURANWOOD_ACORN.get()); event.accept(AntarchyNeoforgeItems.PEACH_LEAVES_ITEM.get()); event.accept(AntarchyNeoforgeItems.PEACH_SAPLING_ITEM.get()); - // event.accept(AntarchyNeoforgeItems.OURANWOOD_VINE_ITEM.get()); event.accept(AntarchyNeoforgeItems.DUPLICATOR_LOG_ITEM.get()); event.accept(AntarchyNeoforgeItems.DUPLICATOR_SAPLING_ITEM.get()); event.accept(AntarchyNeoforgeItems.ORANGE_MILKWEED_ITEM.get()); @@ -103,14 +110,24 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.GIANT_LILY_PAD_ITEM.get()); event.accept(AntarchyNeoforgeItems.SEASHELL_ITEM.get()); event.accept(AntarchyNeoforgeItems.HUSHWEED_ITEM.get()); + event.accept(AntarchyNeoforgeItems.AMBER_LICHEN_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CREEPVINE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.HANGING_CREEPROOTS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.MOLTING_VINES_ITEM.get()); + event.accept(AntarchyNeoforgeItems.GLOWCAP_MUSHROOM_ITEM.get()); + event.accept(AntarchyNeoforgeItems.GLOWCAP_MUSHROOM_BLOCK_ITEM.get()); event.accept(AntarchyNeoforgeItems.INFESTED_ROOTED_DIRT_ITEM.get()); event.accept(AntarchyNeoforgeItems.INFESTED_COARSE_DIRT_ITEM.get()); event.accept(AntarchyNeoforgeItems.TRIFFID_GOO_BLOCK_ITEM.get()); event.accept(AntarchyNeoforgeItems.BED_BUG_EGG_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CREEPING_HORROR_EGG_ITEM.get()); + event.accept(AntarchyNeoforgeItems.LURKING_TERROR_EGG_ITEM.get()); + event.accept(AntarchyNeoforgeItems.JUMPY_BUG_EGG_ITEM.get()); event.accept(AntarchyNeoforgeItems.WASP_NEST_ITEM.get()); event.accept(AntarchyNeoforgeItems.RED_ANT_NEST_ITEM.get()); event.accept(AntarchyNeoforgeItems.BROWN_ANT_NEST_ITEM.get()); event.accept(AntarchyNeoforgeItems.RAINBOW_ANT_NEST_ITEM.get()); + event.accept(AntarchyNeoforgeItems.TERMITE_NEST_ITEM.get()); event.accept(AntarchyNeoforgeItems.URANIUM_ORE_ITEM.get()); event.accept(AntarchyNeoforgeItems.DEEPSLATE_URANIUM_ORE_ITEM.get()); event.accept(AntarchyNeoforgeItems.TITANIUM_ORE_ITEM.get()); @@ -129,6 +146,7 @@ public class AntarchyNeoforgeCreativeModeTabs { if (event.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) { event.insertAfter(new ItemStack(Items.SHEARS), new ItemStack(AntarchyNeoforgeItems.DUCT_TAPE_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); event.insertAfter(new ItemStack(Items.MINECART), new ItemStack(AntarchyNeoforgeItems.DIAMOND_MINECART_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(AntarchyNeoforgeItems.BILE_BUCKET.get()); event.accept(AntarchyNeoforgeItems.ICHOR_BUCKET.get()); event.accept(AntarchyNeoforgeItems.ANTIWATER_BUCKET.get()); event.accept(AntarchyNeoforgeItems.LUMEN_BUCKET.get()); @@ -163,8 +181,10 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.BLOOD_CRYSTAL_APPLE.get()); event.accept(AntarchyNeoforgeItems.SPIRIT_APPLE.get()); event.accept(AntarchyNeoforgeItems.MANTIS_CLAW.get()); + event.accept(AntarchyNeoforgeItems.HERCULES_HORN.get()); event.accept(AntarchyNeoforgeItems.KING_SCALE.get()); event.accept(AntarchyNeoforgeItems.QUEEN_SCALE.get()); + event.accept(AntarchyNeoforgeItems.CHITEN.get()); event.accept(AntarchyNeoforgeItems.STINK_BUG.get()); event.accept(AntarchyNeoforgeItems.BRUTALFLY_WING.get()); event.accept(AntarchyNeoforgeItems.PRIMORDIAL_SCUTE.get()); @@ -185,6 +205,9 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.COOKED_CORNDOG.get()); event.accept(AntarchyNeoforgeItems.RAW_VENISON.get()); event.accept(AntarchyNeoforgeItems.COOKED_VENISON.get()); + event.accept(AntarchyNeoforgeItems.RAW_BUG_MEAT.get()); + event.accept(AntarchyNeoforgeItems.COOKED_BUG_MEAT.get()); + event.accept(AntarchyNeoforgeItems.BROODFRUIT.get()); event.accept(AntarchyNeoforgeItems.CHEEP_ITEM.get()); event.accept(AntarchyNeoforgeItems.ROOT_BEER.get()); event.accept(AntarchyNeoforgeItems.RAINBOW_SUGAR.get()); @@ -293,6 +316,27 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.SMALL_BLOOD_CRYSTAL_BUD_ITEM.get()); event.accept(AntarchyNeoforgeItems.MEDIUM_BLOOD_CRYSTAL_BUD_ITEM.get()); event.accept(AntarchyNeoforgeItems.LARGE_BLOOD_CRYSTAL_BUD_ITEM.get()); + event.accept(AntarchyNeoforgeItems.MYRMITE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_BROODSTONE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CHISELED_BROODSTONE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICKS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_STAIRS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_SLAB_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_BROODSTONE_STAIRS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_BROODSTONE_SLAB_ITEM.get()); + event.accept(AntarchyNeoforgeItems.POLISHED_BROODSTONE_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICK_STAIRS_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICK_SLAB_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_BRICK_WALL_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_URANIUM_ORE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BROODSTONE_TITANIUM_ORE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.BILE_VEIN_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CHITEN_BLOCK_ITEM.get()); + event.accept(AntarchyNeoforgeItems.CHITEN_SPIKE_ITEM.get()); + event.accept(AntarchyNeoforgeItems.AMBER_MOSS_BLOCK_ITEM.get()); + event.accept(AntarchyNeoforgeItems.AMBER_MOSS_CARPET_ITEM.get()); event.accept(AntarchyNeoforgeItems.URANIUM_BLOCK_ITEM.get()); event.accept(AntarchyNeoforgeItems.RAW_URANIUM_BLOCK_ITEM.get()); event.accept(AntarchyNeoforgeItems.CUT_URANIUM_ITEM.get()); @@ -333,6 +377,7 @@ public class AntarchyNeoforgeCreativeModeTabs { event.accept(AntarchyNeoforgeItems.GROWTH_RAY.get()); event.accept(AntarchyNeoforgeItems.GRAVITY_GUN.get()); event.accept(AntarchyNeoforgeItems.WATER_CANNON.get()); + event.accept(AntarchyNeoforgeItems.ATTITUDE_ADJUSTER.get()); event.accept(AntarchyNeoforgeItems.LUCID_PEARL.get()); event.accept(AntarchyNeoforgeItems.PRIMORDIAL_HELMET.get()); event.accept(AntarchyNeoforgeItems.PRIMORDIAL_CHESTPLATE.get()); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java index 502821b2..29004a81 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntites.java @@ -34,6 +34,8 @@ import com.craisinlord.antarchy.content.entity.PeachChestBoatEntity; import com.craisinlord.antarchy.content.entity.ReverieEntity; import com.craisinlord.antarchy.content.entity.ScorpionEntity; import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity; +import com.craisinlord.antarchy.content.entity.SpitBugEntity; +import com.craisinlord.antarchy.content.entity.SpitBugProjectileEntity; import com.craisinlord.antarchy.content.entity.StinkBugEntity; import com.craisinlord.antarchy.content.entity.TriffidEntity; import com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity; @@ -105,11 +107,11 @@ public final class AntarchyNeoforgeEntites { .sized(4.25F, 3.35F) .clientTrackingRange(10) .build("alpha_mantis")); - public static final DeferredHolder, EntityType> ROLLY_POLLY = ENTITY_TYPES.register("rolly_polly", - () -> EntityType.Builder.of(RollyPollyEntity::new, MobCategory.CREATURE) - .sized(0.95F, 0.85F) - .clientTrackingRange(10) - .build("rolly_polly")); +// public static final DeferredHolder, EntityType> ROLLY_POLLY = ENTITY_TYPES.register("rolly_polly", +// () -> EntityType.Builder.of(RollyPollyEntity::new, MobCategory.CREATURE) +// .sized(0.95F, 0.85F) +// .clientTrackingRange(10) +// .build("rolly_polly")); public static final DeferredHolder, EntityType> OURANWOOD_BOAT_ENTITY = ENTITY_TYPES.register("ouranwood_boat", () -> EntityType.Builder.of(OuranwoodBoatEntity::new, MobCategory.MISC) .sized(1.375F, 0.5625F) @@ -149,6 +151,11 @@ public final class AntarchyNeoforgeEntites { .sized(1.15F, 0.8F) .clientTrackingRange(8) .build("bed_bug")); + public static final DeferredHolder, EntityType> STINK_BUG = ENTITY_TYPES.register("stink_bug", + () -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.CREATURE) + .sized(0.35F, 0.2F) + .clientTrackingRange(8) + .build("stink_bug")); public static final DeferredHolder, EntityType> WASP = ENTITY_TYPES.register("wasp", () -> EntityType.Builder.of(WaspEntity::new, MobCategory.MONSTER) .sized(0.8625F, 1.365F) @@ -159,6 +166,22 @@ public final class AntarchyNeoforgeEntites { .sized(0.55F, 0.75F) .clientTrackingRange(8) .build("bomber")); + public static final DeferredHolder, EntityType> JUMPY_BUG = ENTITY_TYPES.register("jumpy_bug", + () -> EntityType.Builder.of(JumpyBugEntity::new, MobCategory.MONSTER) + .sized(3.0F, 6.0F) + .clientTrackingRange(8) + .build("jumpy_bug")); + public static final DeferredHolder, EntityType> SPIT_BUG = ENTITY_TYPES.register("spit_bug", + () -> EntityType.Builder.of(SpitBugEntity::new, MobCategory.MONSTER) + .sized(2.5F, 3.0F) + .clientTrackingRange(10) + .build("spit_bug")); + public static final DeferredHolder, EntityType> SPIT_BUG_PROJECTILE = ENTITY_TYPES.register("spit_bug_projectile", + () -> EntityType.Builder.of(SpitBugProjectileEntity::new, MobCategory.MISC) + .sized(0.5F, 0.5F) + .clientTrackingRange(8) + .updateInterval(1) + .build("spit_bug_projectile")); public static final DeferredHolder, EntityType> SHRINK_RAY_PROJECTILE = ENTITY_TYPES.register("shrink_ray_projectile", () -> EntityType.Builder.of(SizeRayProjectileEntity::createShrink, MobCategory.MISC) .sized(0.5F, 0.5F) @@ -317,6 +340,16 @@ public final class AntarchyNeoforgeEntites { .clientTrackingRange(8) .updateInterval(1) .build("water_bomb")); + public static final DeferredHolder, EntityType> CREEPING_HORROR = ENTITY_TYPES.register("creeping_horror", + () -> EntityType.Builder.of(CreepingHorrorEntity::new, MobCategory.MONSTER) + .sized(1.3F, 1.5F) + .clientTrackingRange(10) + .build("creeping_horror")); + public static final DeferredHolder, EntityType> LURKING_TERROR = ENTITY_TYPES.register("lurking_terror", + () -> EntityType.Builder.of(LurkingTerrorEntity::new, MobCategory.MONSTER) + .sized(1.3F, 1.5F) + .clientTrackingRange(10) + .build("lurking_terror")); public static final DeferredHolder, EntityType> CHEEP = ENTITY_TYPES.register("cheep", () -> EntityType.Builder.of(CheepEntity::new, MobCategory.WATER_AMBIENT) .sized(1.0F, 1.2F) @@ -327,6 +360,11 @@ public final class AntarchyNeoforgeEntites { .sized(1.6F, 1.4F) .clientTrackingRange(10) .build("dorrie")); + public static final DeferredHolder, EntityType> HERCULES_BEETLE = ENTITY_TYPES.register("hercules_beetle", + () -> EntityType.Builder.of(HerculesBeetleEntity::new, MobCategory.MONSTER) + .sized(3.0F, 4.0F) + .clientTrackingRange(12) + .build("hercules_beetle")); public static final DeferredHolder, EntityType> OURANWOOD_DEER = ENTITY_TYPES.register("ouranwood_deer", () -> EntityType.Builder.of(OuranwoodDeerEntity::new, MobCategory.CREATURE) .sized(1.125F, 1.75F) diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java index 2b7aacb0..4b568753 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeEntityAttributes.java @@ -46,7 +46,7 @@ public class AntarchyNeoforgeEntityAttributes { AntarchySettings.termiteMovementSpeed(), AntarchySettings.termiteAttackDamage() ).build()); - event.put(AntarchyNeoforgeEntites.ROLLY_POLLY.get(), RollyPollyEntity.createAttributes().build()); +// event.put(AntarchyNeoforgeEntites.ROLLY_POLLY.get(), RollyPollyEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.DR_TRAYAURUS.get(), Villager.createAttributes().build()); event.put(AntarchyNeoforgeEntites.CLOUD_SHARK.get(), CloudSharkEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.KRAKEN.get(), KrakenEntity.createAttributes().build()); @@ -55,8 +55,11 @@ public class AntarchyNeoforgeEntityAttributes { event.put(AntarchyNeoforgeEntites.TENTACLE.get(), TentacleEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.NIGHTMARE.get(), NightmareEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.BED_BUG.get(), BedBugEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.STINK_BUG.get(), StinkBugEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.WASP.get(), WaspEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.BOMBER.get(), BomberEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.JUMPY_BUG.get(), JumpyBugEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.SPIT_BUG.get(), SpitBugEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.MANTIS.get(), MantisEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.TRIFFID.get(), TriffidEntity.createAttributes().build()); @@ -65,6 +68,8 @@ public class AntarchyNeoforgeEntityAttributes { event.put(AntarchyNeoforgeEntites.BASILISK.get(), BasiliskEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.EMPEROR_SCORPION.get(), EmperorScorpionEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.TORETERROR.get(), ToreterrorEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.CREEPING_HORROR.get(), CreepingHorrorEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.LURKING_TERROR.get(), LurkingTerrorEntity.createAttributes().build()); AttributeSupplier redAntAttributes = buildAntAttributes(AntarchySettings.redAntHealth(), AntarchySettings.redAntMovementSpeed(), AntarchySettings.redAntAttackDamage()).build(); AttributeSupplier brownAntAttributes = buildAntAttributes(AntarchySettings.brownAntHealth(), AntarchySettings.brownAntMovementSpeed(), AntarchySettings.brownAntAttackDamage()).build(); @@ -76,6 +81,7 @@ public class AntarchyNeoforgeEntityAttributes { event.put(AntarchyNeoforgeEntites.MOLEVORE.get(), MolevoreEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build()); + event.put(AntarchyNeoforgeEntites.HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.entity.HerculesBeetleEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.GLIMMER.get(), com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity.createAttributes().build()); event.put(AntarchyNeoforgeEntites.ELKA.get(), ElkaEntity.createAttributes().build()); 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 32c5a18f..5b0352f4 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 @@ -64,6 +64,14 @@ public final class AntarchyNeoforgeItems { 18, AntarchyNeoforgeItems::bloodCrystalRepairIngredient ); + public static final Tier ATTITUDE_ADJUSTER_TIER = new SimpleToolTier( + 3072, + 7.0F, + 0.0F, + Tiers.NETHERITE.getIncorrectBlocksForDrops(), + 18, + () -> Ingredient.of(AntarchyNeoforgeItems.HERCULES_HORN.get()) + ); public static final DeferredItem NIGHTMARE_SCALE = ITEMS.registerSimpleItem("nightmare_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant()); @@ -174,7 +182,6 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem PEACH_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PEACH_BUTTON); public static final DeferredItem PEACH_LEAVES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PEACH_LEAVES); public static final DeferredItem PEACH_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PEACH_SAPLING); - // public static final DeferredItem OURANWOOD_VINE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.OURANWOOD_VINE); public static final DeferredItem ORANGE_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ORANGE_MILKWEED); public static final DeferredItem PINK_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PINK_MILKWEED); public static final DeferredItem CAMELLIA_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CAMELLIA); @@ -205,6 +212,7 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem RED_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.RED_ANT_NEST); public static final DeferredItem BROWN_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROWN_ANT_NEST); public static final DeferredItem RAINBOW_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.RAINBOW_ANT_NEST); + public static final DeferredItem TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TERMITE_NEST); public static final DeferredItem URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.URANIUM_ORE); public static final DeferredItem DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DEEPSLATE_URANIUM_ORE); public static final DeferredItem TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TITANIUM_ORE); @@ -266,9 +274,26 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem INFESTED_ROOTED_DIRT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.INFESTED_ROOTED_DIRT); public static final DeferredItem INFESTED_COARSE_DIRT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.INFESTED_COARSE_DIRT); public static final DeferredItem NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE); + public static final DeferredItem MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE); + public static final DeferredItem BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE); + public static final DeferredItem POLISHED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_BROODSTONE); + public static final DeferredItem CHISELED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_BROODSTONE); + public static final DeferredItem BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICKS); + public static final DeferredItem BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_STAIRS); + public static final DeferredItem BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_SLAB); + public static final DeferredItem BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_WALL); + public static final DeferredItem POLISHED_BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_BROODSTONE_STAIRS); + public static final DeferredItem POLISHED_BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_BROODSTONE_SLAB); + public static final DeferredItem POLISHED_BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_BROODSTONE_WALL); + public static final DeferredItem BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_STAIRS); + public static final DeferredItem BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_SLAB); + public static final DeferredItem BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_WALL); + public static final DeferredItem BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_URANIUM_ORE); + public static final DeferredItem BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_TITANIUM_ORE); public static final DeferredItem POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_NYXITE); public static final DeferredItem CHISELED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_NYXITE); public static final DeferredItem NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICKS); + public static final DeferredItem CHITEN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHITEN_BLOCK); public static final DeferredItem NYXITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_STAIRS); public static final DeferredItem NYXITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_SLAB); public static final DeferredItem NYXITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_WALL); @@ -300,9 +325,15 @@ public final class AntarchyNeoforgeItems { () -> new com.craisinlord.antarchy.content.item.TriffidGooBlockItem(AntarchyNeoforgeBlocks.TRIFFID_GOO_BLOCK.get(), new Item.Properties())); public static final DeferredItem PALE_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.PALE_NYXITE); public static final DeferredItem NYXITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_SPIKE); + public static final DeferredItem CHITEN_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHITEN_SPIKE); public static final DeferredItem POTENT_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POTENT_NYXITE); public static final DeferredItem UMBRAL_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.UMBRAL_MOSS_BLOCK); public static final DeferredItem UMBRAL_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.UMBRAL_MOSS_CARPET); + public static final DeferredItem AMBER_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.AMBER_MOSS_BLOCK); + public static final DeferredItem AMBER_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.AMBER_MOSS_CARPET); + public static final DeferredItem AMBER_LICHEN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.AMBER_LICHEN); + public static final DeferredItem BILE_VEIN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BILE_VEIN); + public static final DeferredItem CREEPVINE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CREEPVINE); public static final DeferredItem BLUSH_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BLUSH_MOSS_BLOCK); public static final DeferredItem BLUSH_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BLUSH_MOSS_CARPET); public static final DeferredItem DREAM_TORCH_ITEM = ITEMS.register("dream_torch", @@ -312,8 +343,15 @@ public final class AntarchyNeoforgeItems { public static final DeferredItem LUMEN_FROGLIGHT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LUMEN_FROGLIGHT); public static final DeferredItem ROSEATE_FROGLIGHT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.ROSEATE_FROGLIGHT); public static final DeferredItem BED_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BED_BUG_EGG); + public static final DeferredItem CREEPING_HORROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CREEPING_HORROR_EGG); + public static final DeferredItem JUMPY_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.JUMPY_BUG_EGG); + public static final DeferredItem LURKING_TERROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LURKING_TERROR_EGG); public static final DeferredItem WASP_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.WASP_NEST); public static final DeferredItem HUSHWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.HUSHWEED); + public static final DeferredItem HANGING_CREEPROOTS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.HANGING_CREEPROOTS); + public static final DeferredItem GLOWCAP_MUSHROOM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.GLOWCAP_MUSHROOM); + public static final DeferredItem GLOWCAP_MUSHROOM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.GLOWCAP_MUSHROOM_BLOCK); + public static final DeferredItem MOLTING_VINES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MOLTING_VINES); public static final DeferredItem BILE_BUCKET = ITEMS.register("bile_bucket", () -> new BucketItem(AntarchyNeoforgeMisc.BILE.get(), new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); public static final DeferredItem ICHOR_BUCKET = ITEMS.register("ichor_bucket", @@ -351,14 +389,14 @@ public final class AntarchyNeoforgeItems { -2.2F )); public static final DeferredItem MANTIS_CLAW = ITEMS.registerSimpleItem("mantis_claw", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final DeferredItem HERCULES_HORN = ITEMS.registerSimpleItem("hercules_horn", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem KING_SCALE = ITEMS.register("king_scale", () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); public static final DeferredItem QUEEN_SCALE = ITEMS.register("queen_scale", () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE))); - public static final DeferredItem STINK_BUG = ITEMS.register("stink_bug", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.UNCOMMON))); - public static final DeferredItem JUMPY_BUG_LEG = ITEMS.register("jumpy_bug_leg", - () -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.UNCOMMON))); + public static final DeferredItem CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final DeferredItem STINK_BUG = ITEMS.registerSimpleItem("stink_bug", new Item.Properties().rarity(Rarity.UNCOMMON)); + public static final DeferredItem JUMPY_BUG_LEG = ITEMS.registerSimpleItem("jumpy_bug_leg", new Item.Properties().rarity(Rarity.UNCOMMON)); public static final DeferredItem JUMPY_BOOTS = ITEMS.register("jumpy_boots", () -> new JumpyBootsItem(JUMPY_BOOTS_ARMOR_MATERIAL, new Item.Properties().stacksTo(1).rarity(Rarity.UNCOMMON).fireResistant().durability(ArmorItem.Type.BOOTS.getDurability(37)))); public static final DeferredItem BRUTALFLY_WING = ITEMS.registerSimpleItem("brutalfly_wing", new Item.Properties().rarity(Rarity.UNCOMMON)); @@ -385,6 +423,25 @@ public final class AntarchyNeoforgeItems { .nutrition(2) .saturationModifier(0.3F) .build()))); + public static final DeferredItem BROODFRUIT = ITEMS.register("broodfruit", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(2) + .saturationModifier(0.1F) + .effect(() -> new MobEffectInstance(MobEffects.DAMAGE_BOOST, 100, 0), 1.0F) + .build()))); + public static final DeferredItem RAW_BUG_MEAT = ITEMS.register("raw_bug_meat", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(3) + .saturationModifier(0.3F) + .build()))); + public static final DeferredItem COOKED_BUG_MEAT = ITEMS.register("cooked_bug_meat", + () -> new Item(new Item.Properties() + .food(new FoodProperties.Builder() + .nutrition(8) + .saturationModifier(0.8F) + .build()))); public static final DeferredItem COOKED_VENISON = ITEMS.register("cooked_venison", () -> new Item(new Item.Properties() .food(new FoodProperties.Builder() @@ -586,6 +643,9 @@ public final class AntarchyNeoforgeItems { () -> new BattleAxeItem(Tiers.NETHERITE, new Item.Properties().stacksTo(1).rarity(Rarity.RARE).fireResistant(), AntarchySettings::battleAxeAttackDamage, -3.1F)); + public static final DeferredItem ATTITUDE_ADJUSTER = ITEMS.register("attitude_adjuster", + () -> new AttitudeAdjusterItem(ATTITUDE_ADJUSTER_TIER, + new Item.Properties().stacksTo(1).durability(ATTITUDE_ADJUSTER_TIER.getUses()).rarity(Rarity.EPIC).fireResistant())); public static final DeferredItem DIAMOND_MINECART_ITEM = ITEMS.register("diamond_minecart", () -> new DiamondMinecartItem(AntarchyNeoforgeEntites.DIAMOND_MINECART, new Item.Properties().stacksTo(1).rarity(Rarity.RARE))); public static final DeferredItem REVERIE_BOTTLE = ITEMS.register("reverie_bottle", @@ -642,12 +702,16 @@ public final class AntarchyNeoforgeItems { () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.BROWN_ANT, 0x6A4320, 0x26160A, new Item.Properties())); public static final DeferredItem RAINBOW_ANT_SPAWN_EGG = ITEMS.register("rainbow_ant_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.RAINBOW_ANT, 0x56D4F0, 0xF66DBB, new Item.Properties())); + public static final DeferredItem TERMITE_SPAWN_EGG = ITEMS.register("termite_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.TERMITE, 0xD4B96A, 0xFF6B1A, new Item.Properties())); public static final DeferredItem MOLEWORM_SPAWN_EGG = ITEMS.register("moleworm_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties())); public static final DeferredItem MANTIS_SPAWN_EGG = ITEMS.register("mantis_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MANTIS, 0xF8F8F2, 0x63B44A, new Item.Properties())); public static final DeferredItem ALPHA_MANTIS_SPAWN_EGG = ITEMS.register("alpha_mantis_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.ALPHA_MANTIS, 0x8FDD6C, 0x2F5D22, new Item.Properties().rarity(Rarity.UNCOMMON))); +// public static final DeferredItem ROLLY_POLLY_SPAWN_EGG = ITEMS.register("rolly_polly_spawn_egg", +// () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.ROLLY_POLLY, 0x7284A3, 0xBCC8DB, new Item.Properties())); public static final DeferredItem MOLEVORE_SPAWN_EGG = ITEMS.register("molevore_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.MOLEVORE, 0x4A4A4A, 0x6B4A2B, new Item.Properties().rarity(Rarity.UNCOMMON))); public static final DeferredItem TRIFFID_SPAWN_EGG = ITEMS.register("triffid_spawn_egg", @@ -664,6 +728,12 @@ public final class AntarchyNeoforgeItems { () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.WASP, 0x111111, 0xF1D800, new Item.Properties())); public static final DeferredItem BOMBER_SPAWN_EGG = ITEMS.register("bomber_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.BOMBER, 0x7A7A7A, 0xB32020, new Item.Properties())); + public static final DeferredItem JUMPY_BUG_SPAWN_EGG = ITEMS.register("jumpy_bug_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.JUMPY_BUG, 0x0A1636, 0x8A3E00, new Item.Properties())); + public static final DeferredItem SPIT_BUG_SPAWN_EGG = ITEMS.register("spit_bug_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.SPIT_BUG, 0x6B4A2B, 0x7ED957, new Item.Properties())); + public static final DeferredItem STINK_BUG_SPAWN_EGG = ITEMS.register("stink_bug_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.STINK_BUG, 0x111111, 0xFF7A00, new Item.Properties())); public static final DeferredItem CLOUD_SHARK_SPAWN_EGG = ITEMS.register("cloud_shark_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.CLOUD_SHARK, 0xDDEAF4, 0x7F96A8, new Item.Properties())); public static final DeferredItem KRAKEN_SPAWN_EGG = ITEMS.register("kraken_spawn_egg", @@ -701,6 +771,12 @@ public final class AntarchyNeoforgeItems { () -> 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().stacksTo(1).rarity(Rarity.RARE).fireResistant())); + public static final DeferredItem CREEPING_HORROR_SPAWN_EGG = ITEMS.register("creeping_horror_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.CREEPING_HORROR, 0x6B3A1F, 0x6B0000, new Item.Properties())); + public static final DeferredItem LURKING_TERROR_SPAWN_EGG = ITEMS.register("lurking_terror_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.LURKING_TERROR, 0x2D5A1B, 0x8B0000, new Item.Properties())); + public static final DeferredItem HERCULES_BEETLE_SPAWN_EGG = ITEMS.register("hercules_beetle_spawn_egg", + () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.HERCULES_BEETLE, 0x6B1F2A, 0xD4AF37, new Item.Properties().rarity(Rarity.RARE))); public static final DeferredItem TORETERROR_SPAWN_EGG = ITEMS.register("toreterror_spawn_egg", () -> new DeferredSpawnEggItem(AntarchyNeoforgeEntites.TORETERROR, 0x90EE90, 0x5C4033, new Item.Properties().rarity(Rarity.EPIC))); public static final DeferredItem CHEEP_SPAWN_EGG = ITEMS.register("cheep_spawn_egg", diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java index 7f5d4acb..4e820e3e 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeMisc.java @@ -12,6 +12,16 @@ import com.craisinlord.antarchy.content.effect.StinkyMobEffect; import com.craisinlord.antarchy.content.worldgen.ants.BrownAntNestFeature; import com.craisinlord.antarchy.content.worldgen.ants.RainbowAntNestFeature; import com.craisinlord.antarchy.content.worldgen.ants.RedAntNestFeature; +import com.craisinlord.antarchy.content.worldgen.ants.TermiteNestFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynBileCystFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynBileVeinFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynCreepvineFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynEggPatchFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynWallAmberMossFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.HangingCreeprootsFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeConfiguration; +import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitenSpikeFeature; +import com.craisinlord.antarchy.content.worldgen.cavaryn.MoltingVinesFeature; import com.craisinlord.antarchy.content.worldgen.ocean.SeashellFeature; import com.craisinlord.antarchy.content.worldgen.elythia.*; import com.craisinlord.antarchy.neoforge.worldgen.CornPatchFeature; @@ -151,36 +161,6 @@ public final class AntarchyNeoforgeMisc { public static final DeferredHolder EXTREME_GROWING = POTIONS.register("extreme_growing", () -> new Potion("growing", new MobEffectInstance(GROWTH_EFFECT, 600, 2))); - // Fluid types - public static final DeferredHolder BILE_TYPE = FLUID_TYPES.register("bile", - () -> new FluidType(FluidType.Properties.create() - .descriptionId("block.antarchy.bile") - .fallDistanceModifier(0.0F) - .supportsBoating(true) - .sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL) - .sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY) - .density(1100) - .viscosity(1200))); - public static final DeferredHolder ICHOR_TYPE = FLUID_TYPES.register("ichor", - () -> new FluidType(FluidType.Properties.create() - .descriptionId("block.antarchy.ichor") - .fallDistanceModifier(0.0F) - .supportsBoating(true) - .sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL) - .sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY) - .density(1200) - .viscosity(1400))); - public static final DeferredHolder ANTIWATER_TYPE = FLUID_TYPES.register("antiwater", - () -> new AntiwaterFluidType(FluidType.Properties.create() - .descriptionId("block.antarchy.antiwater") - .fallDistanceModifier(0.0F) - .canSwim(true) - .supportsBoating(true) - .sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL) - .sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY) - .density(1000) - .viscosity(1000))); - // Fluids public static final DeferredHolder BILE = FLUIDS.register("bile", () -> new BaseFlowingFluid.Source(bileProperties())); @@ -238,6 +218,8 @@ public final class AntarchyNeoforgeMisc { () -> new BrownAntNestFeature(SimpleBlockConfiguration.CODEC)); public static final DeferredHolder, RainbowAntNestFeature> RAINBOW_ANT_NEST_FEATURE = FEATURES.register("rainbow_ant_nest", () -> new RainbowAntNestFeature(SimpleBlockConfiguration.CODEC)); + public static final DeferredHolder, TermiteNestFeature> TERMITE_NEST_FEATURE = FEATURES.register("termite_nest", + () -> new TermiteNestFeature(SimpleBlockConfiguration.CODEC)); public static final DeferredHolder, OuranwoodTreeFeature> OURANWOOD_LARGE_TREE = FEATURES.register("ouranwood_large_tree", () -> new OuranwoodTreeFeature(OuranwoodTreeConfiguration.CODEC)); public static final DeferredHolder, OuranwoodTreeFeature> OURANWOOD_YOUNG_TREE = FEATURES.register("ouranwood_young_tree", @@ -316,6 +298,26 @@ public final class AntarchyNeoforgeMisc { () -> new ThoraxisSpikeFeature(ThoraxisSpikeConfiguration.CODEC)); public static final DeferredHolder, NyxiteSpikeFeature> NYXITE_SPIKES = FEATURES.register("nyxite_spikes", () -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC)); + public static final DeferredHolder, ChitenSpikeFeature> CAVARYN_CHITEN_SPIKES = FEATURES.register("cavaryn_chiten_spikes", + () -> new ChitenSpikeFeature(ChitenSpikeConfiguration.CODEC)); + public static final DeferredHolder, CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins", + () -> new CavarynBileVeinFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, CavarynBileCystFeature> CAVARYN_BILE_CYSTS = FEATURES.register("cavaryn_bile_cysts", + () -> new CavarynBileCystFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, CavarynCreepvineFeature> CAVARYN_CREEPVINE = FEATURES.register("cavaryn_creepvine", + () -> new CavarynCreepvineFeature(NoneFeatureConfiguration.CODEC)); + + public static final DeferredHolder, HangingCreeprootsFeature> HANGING_CREEPROOTS = FEATURES.register("hanging_creeproots", + () -> new HangingCreeprootsFeature(NoneFeatureConfiguration.CODEC)); + + public static final DeferredHolder, MoltingVinesFeature> MOLTING_VINES = FEATURES.register("molting_vines", + () -> new MoltingVinesFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature> JUMPY_BUG_EGG_CEILING = FEATURES.register("jumpy_bug_egg_ceiling", + () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature> ROLLY_CAVES_GIANT_CAVERN = FEATURES.register("rolly_caves_giant_cavern", + () -> new com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, CavarynWallAmberMossFeature> CAVARYN_WALL_AMBER_MOSS = FEATURES.register("cavaryn_wall_amber_moss", + () -> new CavarynWallAmberMossFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, AntiwaterSpringsFeature> ANTIWATER_SPRINGS = FEATURES.register("antiwater_springs", () -> new AntiwaterSpringsFeature(AntiwaterSpringsConfiguration.CODEC)); public static final DeferredHolder, PotentNyxiteFeature> POTENT_NYXITE_FEATURE = FEATURES.register("potent_nyxite", @@ -328,6 +330,12 @@ public final class AntarchyNeoforgeMisc { () -> new BedBugNestFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, BedBugSurfaceClusterFeature> BED_BUG_SURFACE_CLUSTER = FEATURES.register("bed_bug_surface_cluster", () -> new BedBugSurfaceClusterFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, CavarynEggPatchFeature> CAVARYN_TERROR_EGG_PATCH = FEATURES.register("cavaryn_terror_egg_patch", + () -> new CavarynEggPatchFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomFeature> HUGE_GLOWCAP_MUSHROOM = FEATURES.register("huge_glowcap_mushroom", + () -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomFeature(NoneFeatureConfiguration.CODEC)); + public static final DeferredHolder, com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature> HUGE_GLOWCAP_MUSHROOM_WORLDGEN = FEATURES.register("huge_glowcap_mushroom_worldgen", + () -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature(NoneFeatureConfiguration.CODEC)); public static final DeferredHolder, ThoraxisAntiwaterPoolFeature> THORAXIS_ANTIWATER_POOL = FEATURES.register("thoraxis_antiwater_pool", () -> new ThoraxisAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC)); public static final DeferredHolder, LucidAntiwaterPoolFeature> LUCID_ANTIWATER_POOL = FEATURES.register("lucid_antiwater_pool", @@ -365,7 +373,7 @@ public final class AntarchyNeoforgeMisc { static BaseFlowingFluid.Properties ichorProperties() { - return new BaseFlowingFluid.Properties(ICHOR_TYPE, ICHOR, FLOWING_ICHOR) + return new BaseFlowingFluid.Properties(com.craisinlord.antarchy.neoforge.AntarchyNeoForgeFluidTypes.ICHOR_TYPE, ICHOR, FLOWING_ICHOR) .bucket(() -> AntarchyNeoforgeItems.ICHOR_BUCKET.get()) .block(() -> AntarchyNeoforgeBlocks.ICHOR_BLOCK.get()) .slopeFindDistance(4) @@ -374,7 +382,7 @@ public final class AntarchyNeoforgeMisc { } static BaseFlowingFluid.Properties bileProperties() { - return new BaseFlowingFluid.Properties(BILE_TYPE, BILE, FLOWING_BILE) + return new BaseFlowingFluid.Properties(com.craisinlord.antarchy.neoforge.AntarchyNeoForgeFluidTypes.BILE_TYPE, BILE, FLOWING_BILE) .bucket(() -> AntarchyNeoforgeItems.BILE_BUCKET.get()) .block(() -> AntarchyNeoforgeBlocks.BILE_BLOCK.get()) .slopeFindDistance(4) @@ -383,7 +391,7 @@ public final class AntarchyNeoforgeMisc { } static BaseFlowingFluid.Properties antiwaterProperties() { - return new BaseFlowingFluid.Properties(ANTIWATER_TYPE, ANTIWATER, FLOWING_ANTIWATER) + return new BaseFlowingFluid.Properties(com.craisinlord.antarchy.neoforge.AntarchyNeoForgeFluidTypes.ANTIWATER_TYPE, ANTIWATER, FLOWING_ANTIWATER) .bucket(() -> AntarchyNeoforgeItems.ANTIWATER_BUCKET.get()) .block(() -> AntarchyNeoforgeBlocks.ANTIWATER_BLOCK.get()) .slopeFindDistance(4) diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java index 4d2b76e8..6c54accf 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java @@ -134,6 +134,9 @@ public final class AntarchyNeoforgeSounds { public static final DeferredHolder TORETERROR_JUMP_UP = registerSoundEvent("toreterror_jump_up"); public static final DeferredHolder TORETERROR_JUMP_LAND = registerSoundEvent("toreterror_jump_land"); public static final DeferredHolder STINKY_FLY = registerSoundEvent("stinky_fly"); + public static final DeferredHolder STINK_BUG_FART = registerSoundEvent("stink_bug_fart"); + public static final DeferredHolder STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle"); + public static final DeferredHolder ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle"); public static final DeferredHolder CREEPING_HORROR_GROWL = registerSoundEvent("creeping_horror_growl"); public static final DeferredHolder CREEPING_HORROR_HURT = registerSoundEvent("creeping_horror_hurt"); public static final DeferredHolder CREEPING_HORROR_BITE = registerSoundEvent("creeping_horror_bite"); @@ -141,6 +144,19 @@ public final class AntarchyNeoforgeSounds { public static final DeferredHolder LURKING_TERROR_HURT = registerSoundEvent("lurking_terror_hurt"); public static final DeferredHolder LURKING_TERROR_BITE = registerSoundEvent("lurking_terror_bite"); public static final DeferredHolder LURKING_TERROR_FLY_LOOP = registerSoundEvent("lurking_terror_fly_loop"); + public static final DeferredHolder HERCULES_BEETLE_IDLE = registerSoundEvent("hercules_beetle_idle"); + public static final DeferredHolder HERCULES_BEETLE_HURT = registerSoundEvent("hercules_beetle_hurt"); + public static final DeferredHolder HERCULES_BEETLE_ATTACK = registerSoundEvent("hercules_beetle_attack"); + public static final DeferredHolder HERCULES_BEETLE_CRY = registerSoundEvent("hercules_beetle_cry"); + public static final DeferredHolder HERCULES_BEETLE_CHARGE_START = registerSoundEvent("hercules_beetle_charge_start"); + public static final DeferredHolder HERCULES_BEETLE_KNOCKED_DOWN = registerSoundEvent("hercules_beetle_knocked_down"); + public static final DeferredHolder JUMPY_BUG_IDLE = registerSoundEvent("jumpy_bug_idle"); + public static final DeferredHolder SPIT_BUG_IDLE = registerSoundEvent("spit_bug_idle"); + public static final DeferredHolder JUMPY_BUG_HURT = registerSoundEvent("jumpy_bug_hurt"); + public static final DeferredHolder JUMPY_BUG_JUMP = registerSoundEvent("jumpy_bug_jump"); + public static final DeferredHolder SPIT_BUG_HURT = registerSoundEvent("spit_bug_hurt"); + public static final DeferredHolder SPIT_BUG_SPIT = registerSoundEvent("spit_bug_spit"); + public static final DeferredHolder BRUTALFLY_SPIT = registerSoundEvent("brutalfly_spit"); public static final DeferredHolder DUCT_TAPE_USE = registerSoundEvent("duct_tape_use"); public static final DeferredHolder POTENT_NYXITE_HYPNOTIC_GAS = registerSoundEvent("potent_nyxite_hypnotic_gas"); public static final DeferredHolder POTENT_NYXITE_GEYSER_ERUPTION_START = registerSoundEvent("potent_nyxite_geyser_eruption_start"); diff --git a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSpawnPlacements.java b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSpawnPlacements.java index f81cbacc..85f1feb2 100644 --- a/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSpawnPlacements.java +++ b/neoforge/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSpawnPlacements.java @@ -34,6 +34,8 @@ public class AntarchyNeoforgeSpawnPlacements { event.register(AntarchyNeoforgeEntites.CLOUD_SHARK.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CloudSharkEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.WASP.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WaspEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.BOMBER.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BomberEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); + event.register(AntarchyNeoforgeEntites.JUMPY_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, JumpyBugEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); + event.register(AntarchyNeoforgeEntites.SPIT_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, SpitBugEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.KRAKEN.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, KrakenEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.MISSILE_SQUID.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MissileSquidEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.OCTOPUS_BOMB.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, OctopusBombEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); @@ -43,10 +45,15 @@ public class AntarchyNeoforgeSpawnPlacements { event.register(AntarchyNeoforgeEntites.ALPHA_MANTIS.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AlphaMantisEntity::checkAlphaMantisSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.MOLEVORE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolevoreEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.BED_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BedBugEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); + event.register(AntarchyNeoforgeEntites.STINK_BUG.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StinkBugEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.LUCID.get(), SpawnPlacementTypes.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LucidEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ScorpionEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.BASILISK.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BasiliskEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.EMPEROR_SCORPION.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); + event.register(AntarchyNeoforgeEntites.CREEPING_HORROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CreepingHorrorEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); + event.register(AntarchyNeoforgeEntites.LURKING_TERROR.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LurkingTerrorEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); + event.register(AntarchyNeoforgeEntites.TERMITE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR); +// event.register(AntarchyNeoforgeEntites.ROLLY_POLLY.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.RollyPollyEntity::canSpawn, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.CHEEP.get(), SpawnPlacementTypes.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AbstractFish::checkSurfaceWaterAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.DORRIE.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR); event.register(AntarchyNeoforgeEntites.OURANWOOD_DEER.get(), SpawnPlacementTypes.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, RegisterSpawnPlacementsEvent.Operation.OR); diff --git a/neoforge/src/main/resources/assets/antarchy/models/item/attitude_adjuster.json b/neoforge/src/main/resources/assets/antarchy/models/item/attitude_adjuster.json new file mode 100644 index 00000000..c3811473 --- /dev/null +++ b/neoforge/src/main/resources/assets/antarchy/models/item/attitude_adjuster.json @@ -0,0 +1,25 @@ +{ + "loader": "neoforge:separate_transforms", + "gui_light": "front", + "textures": { + "layer0": "antarchy:item/attitude_adjuster/attitude_adjuster_item" + }, + "base": { + "parent": "antarchy:item/attitude_adjuster_held" + }, + "texture_size": [ + 64, + 64 + ], + "perspectives": { + "gui": { + "parent": "antarchy:item/attitude_adjuster_gui" + }, + "ground": { + "parent": "antarchy:item/attitude_adjuster_gui" + }, + "fixed": { + "parent": "antarchy:item/attitude_adjuster_gui" + } + } +} diff --git a/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/ant_nests_in_forests.json b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/ant_nests_in_forests.json index 45283482..684bd2ee 100644 --- a/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/ant_nests_in_forests.json +++ b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/ant_nests_in_forests.json @@ -3,7 +3,8 @@ "biomes": "#antarchy:overworld_ant_nest_spawn_biomes", "features": [ "antarchy:brown_ant_nest", - "antarchy:rainbow_ant_nest" + "antarchy:rainbow_ant_nest", + "antarchy:termite_nest" ], "step": "vegetal_decoration" } diff --git a/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/remove_glow_lichen_from_cavaryn.json b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/remove_glow_lichen_from_cavaryn.json new file mode 100644 index 00000000..206947e6 --- /dev/null +++ b/neoforge/src/main/resources/data/antarchy/neoforge/biome_modifier/remove_glow_lichen_from_cavaryn.json @@ -0,0 +1,8 @@ +{ + "type": "neoforge:remove_features", + "biomes": "#antarchy:is_cavaryn", + "features": [ + "minecraft:glow_lichen" + ], + "step": "vegetal_decoration" +}